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



从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 已经新安装在两个环境中,具有最新版本。

我的想法快用完了...有人有任何指示/想法吗?

此错误消息...

The driver server has unexpectedly died!

。暗示壁虎驱动程序无法启动/生成新的Web浏览器,即Firefox浏览器会话。

您的主要问题是您使用的二进制文件版本之间的不兼容,如下所示:

根据错误日志,您的Selenium客户端版本为3.13.0
  • ,但根据Maven配置,您的Selenium客户端版本为3.14.0
  • 您的JDK版本1.8.0_73,这是非常古老的
  • 我们不知道您的壁虎驱动程序版本。
  • 我们不知道您的火狐版本。

所以JDK v8u73Selenium Client v3.13.0之间存在明显的不匹配。

溶液

  • JDK升级到最新级别JDK 8u181
  • 升级到当前级别版本 3.14.0
  • GeckoDriver升级到GeckoDriver v0.20.1级别。
  • 将火版本升级到火狐 v61.0.2级别。
  • 通过IDE清理项目工作中心,并仅使用所需的依赖项重新生成项目。
  • (仅限LinuxOS(在执行测试套件之前和之后释放Ubuntu/Linux Mint中未使用/缓存的内存。
  • 如果您的基本 Web 客户端版本太旧,请通过Revo 卸载程序将其卸载,并安装最新的 GA 和已发布版本的Web 客户端
  • 重新启动系统
  • 以非 root 用户身份执行Test
  • 始终在方法中调用driver.quit()tearDown(){}以正常关闭和销毁WebDriverWeb 客户端实例。

最新更新