如何用selenium 3.0.0 beta关闭geckodriver

时间:2016-09-27 06:17:39

标签: selenium firefox

环境: Win 7,Selenium 3.0.0 beta,FireFox- 49.0.1

System.setProperty("webdriver.gecko.driver","C:\\geckodriver.exe");

WebDriver driver=new FirefoxDriver();    

问题1:

命令:driver.close();((FirefoxDriver) driver).kill();

预期结果:浏览器应关闭。

实际结果:浏览器未关闭。

问题2:

命令:driver.quit();

预期结果:浏览器应关闭。

实际结果:Firefox崩溃了。

获取错误:“FireFox的插件容器已停止工作。”

任何建议......

10 个答案:

答案 0 :(得分:3)

解决方法直到我们对此进行具体修复。虽然有几篇帖子表明这已经在50及以上版本中得到修复,但事实是这并不是一贯的。我在Windows 7和驱动程序的两台机器上安装了最新版本54。使用相同的Java和Selenium版本,Quit在一个上运行正常,而在其他版本上运行正常。作为替代方案,为了在Windows机器上执行,以下代码将有助于终止Firefox的所有相关进程。

while (bytesRead > -1 && current<FILE_SIZE)

答案 1 :(得分:2)

以下解决方案在Windows7上使用Firefox49,Selenium 3.0.1,Python 3.5和geckodriver-v0.11.1进行了测试,并且运行正常。

import os

然后致电

os.system('tskill plugin-container')

在致电driver.quit()

之前

答案 2 :(得分:1)

你做不到。这是一个仍然是开放的当前错误。 因此,在Windows操作系统上,如果有人试图杀死FireFox驱动程序,则会出现错误:“获取错误:”FireFox的插件容器已停止工作。“

我认为此问题至今仍未解决:https://github.com/SeleniumHQ/selenium/issues/2701

此问题在其他操作系统和ChromeDriver cloese上没有问题。这只是FireFox和geckodriver。

答案 3 :(得分:0)

这是sendkeys unicodes的临时解决方法:

Actions builder = new Actions(driver);
builder.keyDown(Keys.ALT).sendKeys(String.valueOf('\u0066'));
builder.sendKeys(String.valueOf('\u0058'));
builder.perform();

答案 4 :(得分:0)

转到\ Program Files(x86)\ Mozilla Firefox \

找到plugin-container.exe

删除或重命名!

找到解决方案here

答案 5 :(得分:0)

我尝试在Windows机器上运行测试的简单解决方案是在使用geckodriver的firefox浏览器的driver.quit()或driver.close()之前添加此代码

try {
            Runtime.getRuntime().exec("taskkill /F /IM geckodriver.exe");
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

答案 6 :(得分:0)

我有类似的问题,解决方案正在设置

  

“browser.tabs.remote.autostart.2”= false

在浏览器配置文件首选项中。

https://stackoverflow.com/a/45814451/2546759

答案 7 :(得分:0)

driver.quit()确实为我效果

driver.close()没有。

使用鼠标实际单击关闭按钮不起作用。

在Ubuntu 16.04上使用Python 3.6, Selenium 3.4.3 geckodriver v.0.18.0

答案 8 :(得分:0)

已修复并为我使用Firefox 76.0.1(64位),geckodriver-v0.26.0-win64,Selenium 3.141.0,Python 3.8。

driver.close()

关闭焦点标签

driver.quit()

关闭所有窗口并结束webdriver会话

答案 9 :(得分:-2)

Driver.close()应该没有任何问题。

我们遇到了driver.quit();

的问题

在此检查问题 - https://github.com/SeleniumHQ/selenium/issues/2701