驱动程序服务器意外死亡!与硒

时间:2018-08-28 10:53:47

标签: java selenium firefox selenium-webdriver geckodriver

从Eclipse运行时,以下代码可以正常运行:

System.setProperty("webdriver.gecko.driver", pathToGeckoDriver);
FirefoxOptions options = new FirefoxOptions();
options.setHeadless(true);
WebDriver driver = new FirefoxDriver(options);
driver.manage().window().setSize(new Dimension(2500, 1500));
driver.get(myUrl);
driver.close();

但是在Docker容器中运行时失败,并显示以下错误:

The driver server has unexpectedly died!
Build info: version: '3.13.0', revision: '2f0d292', time: '2018-06-25T15:24:21.231Z'
System info: host: 'XXXX', ip: 'XXX.X.X.X', os.name: 'Linux', os.arch:'amd64', os.version: '3.10.0-862.9.1.el7.x86_64', java.version: '1.8.0_73'
Driver info: driver.version: RemoteWebDriver

我读到它可能来自Selenium framewrok与Firefox版本之间的不兼容。我正在使用以下Selenium框架:

<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-firefox-driver</artifactId>
    <version>3.14.0</version>
</dependency>

并且Firefox已在两个环境中最新版本的最新安装。

我没什么主意了……有人有任何指针/想法吗?

2 个答案:

答案 0 :(得分:1)

此错误消息...

The driver server has unexpectedly died!

...表示 GeckoDriver 无法启动/产生新的 WebBrowser ,即 Firefox浏览器会话。

您的主要问题是所使用的二进制版本之间的不兼容性

  • 根据错误日志,您的 Selenium Client 版本为 3.13.0 ,但根据 Maven 配置,您的 Selenium Client < / em>版本为 3.14.0
  • 您的 JDK版本 1.8.0_73 ,这是古老的
  • 您不知道您的 GeckoDriver 版本。
  • 您不知道您的 Firefox 版本。

因此 JDK v8u73 Selenium Client v3.13.0 之间显然不匹配。

解决方案

  • JDK 升级到最新级别JDK 8u181
  • 升级到当前水平Version 3.14.0
  • GeckoDriver 升级到GeckoDriver v0.20.1级。
  • Firefox 版本升级到 Firefox v61.0.2 级别。
  • 通过您的 IDE
  • 清理您的项目工作区重建您的项目,并且仅具有必需的依赖项。
  • (仅仅LinuxOS Free Up and Release the Unused/Cached Memory in Ubuntu/Linux Mint在执行 Test Suite 之前和之后。
  • 如果您的基本 Web客户端版本过旧,请通过Revo Uninstaller进行卸载,并安装最新版本的 Web客户端。 li>
  • 进行系统重启
  • 以非root用户身份执行Test
  • 始终在driver.quit()方法内调用tearDown(){},以优雅地关闭和销毁 WebDriver Web Client 实例。

答案 1 :(得分:0)

尝试这种组合 硒11.6+ 壁虎-0.21 日食霓虹灯 firefox-57.0 +