Selenium 无法从 Jenkins 运行 Firefox 浏览器

标签 selenium ubuntu firefox jenkins geckodriver

我尝试在 Ubuntu 机器上通过 jenkins 在 firefox 上使用 selenium 运行自动化测试,但无法运行它。但是使用 Eclipse 可以毫无问题地运行相同的代码。我将其作为 Maven 项目运行。

出现以下错误-

"[INFO] Running TestSuite
1524549883598   geckodriver INFO    geckodriver 0.20.0
1524549883615   geckodriver INFO    Listening on 127.0.0.1:14395
1524549883939   mozrunner::runner   INFO    Running command: "/usr/lib/firefox/firefox" "-marionette" "-profile" "/tmp/rust_mozprofile.78vmBc1aqdpF"
1524549883941   geckodriver::marionette TRACE     connection attempt 0/600
ExceptionHandler::GenerateDump cloned child 6290
ExceptionHandler::SendContinueSignalToChild sent continue signal to child
ExceptionHandler::WaitForContinueSignal waiting for continue signal...
1524549884041   geckodriver::marionette TRACE     connection attempt 1/600
1524549884141   webdriver::server   DEBUG   <- 500 Internal Server Error {"value":{"error":"unknown error","message":"Process unexpectedly closed with status signal","stacktrace":""}}
Msg Process unexpectedly closed with status signal
Build info: version: '3.11.0', revision: 'e59cfb3', time: '2018-03-11T20:26:55.152Z'
System info: host: 'Unknown', ip: 'Unknown', os.name: 'Linux', os.arch: 'amd64', os.version: '4.4.0-96-generic', java.version: '1.8.0_131'
Driver info: driver.version: FirefoxDriver
remote stacktrace: 

Firefox 版本 -60.0b10 Selenium -3.11.0 使用 Gecko 驱动程序”

最佳答案

这个错误信息...

1524549884141   webdriver::server   DEBUG   <- 500 Internal Server Error {"value":{"error":"unknown error","message":"Process unexpectedly closed with status signal","stacktrace":""}}

...暗示 ma​​rionette 无法启动与 WebClientFirefox 浏览器的事件连接。

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

  • 您的 Selenium 客户端 版本是 3.11.0
  • 您的JDK 版本1.8.0_131,这是非常古老的。
  • 您的 GeckoDriver 版本是 v0.20.0
  • 我们不知道您的 Firefox 版本。

因此 JDK v8u131Selenium Client v3.11.0GeckoDriver v0.20.0 之间存在明显的不匹配。

解决方案

  • JDK 升级到最新级别 JDK 8u162 .
  • GeckoDriver 升级到 GeckoDriver v0.20.1水平。
  • 确保 GeckoDriver 根据您的代码块出现在指定位置。
  • 确保 GeckoDriver非 root 用户具有可执行权限
  • Firefox 版本升级到 Firefox v59.0.2 级别。
  • 清理您的项目工作区,通过您的IDE重建您的项目,仅使用所需的依赖项。
  • 使用CCleaner用于在执行您的测试套件之前和之后清除所有操作系统杂务的工具。
  • 如果您的基本 Web Client 版本太旧,请通过 Revo Uninstaller 卸载它。并安装最新的 GA 和发布版本的 Web Client
  • 系统重启
  • 以非根用户身份执行您的测试
  • 始终在 tearDown(){} 方法中调用 driver.quit() 以关闭和销毁 WebDriverWeb 客户端 实例优雅。

关于Selenium 无法从 Jenkins 运行 Firefox 浏览器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49995331/

相关文章:

python - Selenium Webdriver - Python - leboncoin(分类) - pb 选择下拉列表和框

java - Selenium 查找页面是否已加载?

java - 无法在 selenium 中使用显式(流畅)等待来定位动态加载的弹出窗口

PHP实时查看exec状态,可能吗?

java - 为 webdriver 记录 selenium

node.js - 开发环境中的错误 : Cannot find module './abc/xyz.js

android - 如何在 android 设备上下载 Launchpad ppa 存储库以安装在气隙 ubuntu 系统上

Angular5 Service Worker 更新 (SWUpdate) 未在 Firefox 上检测到。在 Chrome 上工作

Javascript Firefox 径向渐变

javascript - 确定用户是否单击了主页按钮/应用程序是否未激活[Firefox OS]