无法在firefox Jenkins上运行自动化

时间:2016-04-28 14:06:42

标签: firefox jenkins webdriver jenkins-plugins watir-webdriver

我在Ubuntu服务器上最近安装的Jenkins上运行自动化项目时遇到问题。我遇到以下错误:

Selenium::WebDriver::Error::WebDriverError: unable to obtain stable firefox connection in 60 seconds (127.0.0.1:7055)
/var/lib/gems/2.3.0/gems/selenium-webdriver-2.53.0/lib/selenium/webdriver/firefox/launcher.rb:90:in `connect_until_stable'
/var/lib/gems/2.3.0/gems/selenium-webdriver-2.53.0/lib/selenium/webdriver/firefox/launcher.rb:55:in `block in launch'
/var/lib/gems/2.3.0/gems/selenium-webdriver-2.53.0/lib/selenium/webdriver/common/socket_lock.rb:43:in `locked'
/var/lib/gems/2.3.0/gems/selenium-webdriver-2.53.0/lib/selenium/webdriver/firefox/launcher.rb:51:in `launch'
/var/lib/gems/2.3.0/gems/selenium-webdriver-2.53.0/lib/selenium/webdriver/firefox/bridge.rb:43:in `initialize'
/var/lib/gems/2.3.0/gems/selenium-webdriver-2.53.0/lib/selenium/webdriver/common/driver.rb:53:in `new'
/var/lib/gems/2.3.0/gems/selenium-webdriver-2.53.0/lib/selenium/webdriver/common/driver.rb:53:in `for'
/var/lib/gems/2.3.0/gems/selenium-webdriver-2.53.0/lib/selenium/webdriver.rb:84:in `for'
/var/lib/gems/2.3.0/gems/watir-webdriver-0.9.1/lib/watir-webdriver/browser.rb:46:in `initialize'
/var/lib/jenkins/workspace/JobScience/lib/New_Automation/Test/test_basic.rb:15:in `new'
/var/lib/jenkins/workspace/JobScience/lib/New_Automation/Test/test_basic.rb:15:in `setup'

我已经读过我应该更新selenium-webdriver gem,但我知道它是最新的。还在jenkins中安装了firefox插件,但仍无法正常工作。

4 个答案:

答案 0 :(得分:3)

如果您只是搜索SO以及#34; Jenkins无法在60秒内获得稳定的Firefox连接"你会发现这是一个相当普遍的问题。你也会发现它可能是由许多事情引起的。

  • FF和Webdriver之间的版本冲突:(最常见)通常是因为你没有运行最新版本的firefox,和/或使用最新的selenium-webdriver gem。
  • 权限问题:jenkins在执行程序系统上使用的帐户没有实际执行firefox的权限。如果您通过手动登录执行程序系统进行测试,请确保使用的是Jenkins所使用的用户。
  • 没有显示:因为大多数jenkins执行者无头而造成。您可能需要设置一个环境变量,如export DISPLAY=:0,或运行一个程序,如XVFB(一个虚拟帧缓冲区),或使用无头宝石(包装XVFB),所以firefox不会在没有显示器。

一个很好的初步故障排除步骤是改变你的jenkins脚本,让它尝试启动firefox本身(不是通过webdriver),如果它运行,那么通常会排除权限或无头问题,所以问题出在webdriver和Firefox浏览器。如果您收到错误,则可能表明问题是权限还是缺少显示。

您基本上需要消除此问题的所有可能原因,因为您的搜索将揭示有许多潜在的原因和解决方案。这里有一个小样本(是的,尽管标题几乎相同,但每个问题都是不同的SO问题):

答案 1 :(得分:1)

我不熟悉Firefox插件,你不应该需要它,它可能会导致冲突。 Watir使用Selenium来查找路径中的任何firefox可执行文件。确保Firefox 45在您的Ubuntu系统中存在于$ PATH中列出的文件夹中,Selenium将连接到它。

答案 2 :(得分:1)

根据我的经验,这是版本问题,我已经决定使用Firefox 33.0

https://ftp.mozilla.org/pub/firefox/releases/

答案 3 :(得分:0)

正如Chuck van der Linden所说

  

你基本上需要消除这个问题的所有可能原因,因为你的搜索将揭示有很多潜在的原因和解决方案。

然后我尝试这样做Firefox无法访问显示器。 检查你的Jenkins和(或)Selenium是从kde,unity等开始作为服务或类似的程序吗?