【问题标题】:How to close geckodriver with selenium 3.0.0 beta如何使用 selenium 3.0.0 beta 关闭 geckodriver
【发布时间】:2017-02-04 15:39:00
【问题描述】:

环境: 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 的插件容器已停止工作。”

任何建议...

【问题讨论】:

  • 这个问题已经有答案了吗?版本 52.0.2 和 driver.close() 关闭 geckodriver 没有问题,但 driver.quit() 关闭 Firefox 并出现您提到的错误

标签: selenium firefox


【解决方案1】:

解决方法,直到我们对此进行具体修复。尽管有几篇文章表明这​​已在版本 50 及更高版本中得到修复,但事实是这并不能始终如一地工作。我已经在 Windows 7 和驱动程序的两台机器上安装了最新版本 54。 Quit 在其中一个上运行良好,而在具有相同 Java 和 Selenium 版本的另一个上却不行。作为替代方案,对于在 Windows 机器上执行,以下代码将有助于杀死 Firefox 的所有相关进程。

if (browser == "FIREFOX")) {
    try {
        Runtime.getRuntime().exec("taskkill /F /IM geckodriver.exe");
        Runtime.getRuntime().exec("taskkill /F /IM plugin-container.exe");
        Runtime.getRuntime().exec("taskkill /F /IM firefox.exe");
    } catch (IOException e) {
        e.printStackTrace();
    }
} else {
    driver.quit();
}

【讨论】:

    【解决方案2】:

    driver.quit() 确实为我工作

    driver.close() 没有。

    物理上使用鼠标单击关闭按钮不起作用。

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

    【讨论】:

    • 我可以重新验证这适用于 python 2.7 + ubuntu 16。注意,如果你在退出前调用驱动程序关闭,这将不起作用。
    【解决方案3】:

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

    import os
    

    然后调用

    os.system('tskill plugin-container')

    在致电driver.quit()之前

    【讨论】:

      【解决方案4】:

      你不能。这是一个仍然存在的当前错误。 因此,在 Windows 操作系统上,如果有人试图杀死 FireFox 驱动程序,则会出现错误:“Getting Error: “Plugin container for FireFox has stop working。”

      我认为这个问题从今天开始开放:https://github.com/SeleniumHQ/selenium/issues/2701

      此问题在其他操作系统上不存在,ChromeDriver 关闭正常。只有 FireFox 和 geckodriver。

      【讨论】:

      • 此问题现已修复。如果您使用最新版本的 FireFox、WebDriver 和 GeckoDriver....FireFox 将按预期关闭。
      【解决方案5】:

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

      找到plugin-container.exe

      删除或重命名!

      找到解决方案here

      【讨论】:

        【解决方案6】:

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

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

        【讨论】:

          【解决方案7】:

          我尝试在 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();
                  }
          

          【讨论】:

            【解决方案8】:

            我也遇到过类似的问题,解决办法是设置

            "browser.tabs.remote.autostart.2" = false

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

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

            【讨论】:

              【解决方案9】:

              已修复并适用于 Firefox 76.0.1(64 位)、geckodriver-v0.26.0-win64、Selenium 3.141.0、Python 3.8。

              driver.close()
              

              关闭焦点标签

              driver.quit()
              

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

              【讨论】:

                【解决方案10】:

                Driver.close() 应该可以正常工作。

                driver.quit() 有问题;

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

                【讨论】:

                猜你喜欢
                • 2016-12-06
                • 1970-01-01
                • 2017-08-21
                • 2018-08-05
                • 2018-02-07
                • 2020-12-26
                • 2019-08-30
                • 1970-01-01
                • 2017-05-14
                相关资源
                最近更新 更多