无法在firefox上运行自动化Jenkins

问题描述:

我在Ubuntu服务器上最近安装的Jenkins上运行自动化项目时遇到问题。我有以下错误:无法在firefox上运行自动化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' 

我读过,我应该更新硒webdriver的宝石,但我把它最新的。还在jenkins中安装了firefox插件,但仍然无法运行。

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

+0

Firefox正确安装,因为当我在服务器上手动运行测试时,它会启动firefox驱动程序并运行测试。但是,当测试在jenkins上运行时,错误仍然存​​在 – elcharrua

如果您只搜索“因为Jenkins在60秒内无法获得稳定的Firefox连接”,您会发现这是一个相当普遍的问题。你也会看到它可能是由许多事情引起的。

  • FF和Webdriver之间的版本控制冲突:(最常见)通常是因为您没有运行最新版本的Firefox,和/或使用最新的selenium-webdriver gem。
  • 权限问题:jenkins在执行程序系统上使用的帐户没有实际执行firefox的权限。如果您正在通过手动登录执行器系统来测试此操作,请确保您使用的是与Jenkins相同的用户。
  • 不显示:由于大多数詹金斯执行者无法运行而引起。您可能需要设置一个环境变量,例如export DISPLAY=:0,或者运行一个像XVFB(虚拟帧缓冲区)的程序,或者使用无头封套(包装XVFB),这样firefox就不会因缺乏显示器而停下脚步。

良好的初始故障排除步骤是改变你的詹金斯的脚本只是在用它尝试启动Firefox本身(而不是通过webdriver的),如果它运行,则通常排除权限或无头的问题,所以这个问题是webdriver和firefox之间。如果出现错误,它可能会指示问题是否是权限问题,或缺少显示。

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

+0

如何检查jenkins是否具有权限执行权限(我是ubuntu的新手)。 – elcharrua

+0

通常我会说让你的dev-ops类型的人帮助你(或谁管理詹金斯) 你应该能够编写适当的linux命令来检查登录用户在Firefox上的权限。我远离* nix专家,或者我 –

+0

编辑的答案包括链接到这个问题的另一个新例子,也增加了一个很好的故障排除步骤,我想起了。 –

以我的经验,这是一个版本的问题,我已经在使用Firefox 33.0

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

沉降

由于查林登说

You basically need to eliminate all the possible causes for this issue, which as your search will reveal there are many potential causes and solutions for this.

然后我尝试这样做的Firefox不能老是让访问显示。 检查你的詹金斯和(或)硒开始作为服务或从kde,团结等程序?