我尝试在 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":""}}
...暗示 marionette 无法启动与 WebClient 即 Firefox 浏览器的事件连接。
您的主要问题是您使用的二进制文件之间的版本兼容性,如下所示:
- 您的 Selenium 客户端 版本是 3.11.0。
- 您的JDK 版本是1.8.0_131,这是非常古老的。
- 您的 GeckoDriver 版本是 v0.20.0。
- 我们不知道您的 Firefox 版本。
因此 JDK v8u131、Selenium Client v3.11.0 和 GeckoDriver 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()
以关闭和销毁 WebDriver 和 Web 客户端 实例优雅。
关于Selenium 无法从 Jenkins 运行 Firefox 浏览器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49995331/