【发布时间】:2017-12-15 02:35:26
【问题描述】:
我有一个项目,有时使用多个 FF 窗口,有时使用多个 FF 驱动程序。 在初始化期间,我创建了一个自定义 FirefoxProfile(或从 Selenium 加载默认值而不做任何更改),将其添加到 DesiredCapabilities,将功能添加到 FirefoxOptions 并使用 FirefoxOptions 启动 FF。
测试用例执行良好,直到我需要关闭窗口:
driver.getWindowHandles().forEach(name -> driver.switchTo().window(name).close());
或
driver.quit();
其中任何一个通过后,FF 都会关闭并出现“Firefox 已崩溃”弹出窗口。日志中未显示异常。
如果我删除 FirefoxProfile,则不会出现崩溃弹出窗口,但需要 FirefoxProfile 才能启用 Flash 支持并执行更多操作。
使用:
- 硒 3.4.0
- Firefox 54(32 位)
- Geckodriver 0.17(32 位)
- Windows 10 64 位 // Windows 7 64 位
【问题讨论】:
-
我没有使用 Geckodriver(我正在使用 Selenium 2.5),但我在这里和 github 中看到了很多关于关闭浏览器的问题和错误报告。与此同时,this answer 可能会提供一个临时补丁。
-
@Guy - 我无法杀死 plugincontainer,因为我使用的是 Flash。如果是插件容器问题,则会显示“plugin-container.exe 已崩溃”
-
@Hans 看起来这是一个已知的 Firefox/geckodriver 问题,有几个人面临并报告了相同的问题。尝试使用 FF v47.0.2,它对我也很好。
-
如果您还是要致电
quit,为什么还要花时间关闭驱动程序的所有窗口句柄?我假设如果您刚刚调用driver.quit(),此错误仍然会发生,对吗? -
@anshulGupta - 我不能使用旧版 Firefox。高层管理人员和安全人员不允许。
标签: java selenium firefox crash geckodriver