【发布时间】:2018-07-23 13:31:34
【问题描述】:
我目前正在处理一个需要使用多个窗口的项目,每个窗口都需要不同的会话和 cookie。
每个窗口创建完成并完成工作后,都需要关闭它。然后重复这个过程。
窗口创建在一个数组中,如图所示。
var fOptions = new firefox.Options();
var profile = new firefox.Profile('./fProfile');
fOptions.setProfile(profile);
driver[0] = new Builder().withCapabilities({'browserName': 'firefox'}).setFirefoxOptions(fOptions).build();
driver[1] .....
关闭窗户的最佳方法是什么: 使用 driver[index].close() 或 driver[index].quit()
我在使用 driver[index].quit()
时有时会遇到此错误This driver instance does not have a valid session ID (did you call WebDriver.quit()?) and may no longer be used.
我的 TEMP 目录中还有很多 tmp-[abcd] 文件夹,这些文件夹来自未删除的会话。
我愿意接受任何在多窗口测试中实现新会话的解决方案
我正在使用带有壁虎驱动程序的 Selenium 的 nodeJS 实现。
【问题讨论】:
-
多个窗口意味着多个浏览器选项卡或多个浏览器实例(具有单个选项卡)? .此外,仅当我在同一个浏览器实例中打开多个选项卡并想要关闭当前处于活动状态的选项卡时,我才会使用 driver.close() 方法。而 driver.quit() 将用于终止整个浏览器实例。还有一件事,过去也有 'driver.dispose()' 方法,除了安全结束会话之外,它与 driver.quit() 有点相同。
标签: node.js selenium session selenium-webdriver geckodriver