【问题标题】:Unable to run automation on firefox Jenkins无法在 Firefox Jenkins 上运行自动化
【发布时间】:2016-04-28 14:06:42
【问题描述】:

我在 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插件,还是不行。

【问题讨论】:

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


    【解决方案1】:

    如果你只是在 SO 中搜索“Jenkins 无法在 60 秒内获得稳定的 firefox 连接”,你会发现这是一个相当普遍的问题。您还将看到它可能是由多种原因引起的。

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

    一个很好的初始故障排除步骤是更改您的 jenkins 脚本,使其尝试启动 firefox 本身(而不是通过 webdriver),如果它运行,则通常排除权限或无头问题,因此问题在于 webdriver 和火狐。如果您收到错误,它可能会指示问题是权限还是缺少显示。

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

    【讨论】:

    • 如何检查 jenkins 是否有权限执行权限(我是 ubuntu 新手)。
    • 一般来说,我会说让你的开发人员类型的人来帮助你(或管理 Jenkins)你应该能够编写适当的 linux 命令来检查 Firefox 上的权限登录的用户。我远非 *nix 专家,或者我
    • 编辑了答案以包含指向此问题的另一个新示例的链接,还添加了一个让我想起的很好的故障排除步骤。
    【解决方案2】:

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

    【讨论】:

    • Firefox 安装正确,因为当我在服务器上手动运行测试时,它会启动 firefox 驱动程序并运行测试。但是当测试在詹金斯上运行时,错误仍然存​​在
    【解决方案3】:

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

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

    【讨论】:

      【解决方案4】:

      正如查克·范德林登所说

      您基本上需要消除此问题的所有可能原因,因为您的搜索会发现有许多潜在原因和解决方案。

      然后我尝试这样做 Firefox 无法访问显示。 检查您的 Jenkins 和(或)Selenium 从 kde、unity 等作为服务或类似程序启动?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-01-08
        • 2018-10-04
        • 2016-01-20
        • 2018-03-19
        • 1970-01-01
        • 2018-05-08
        • 2018-05-11
        • 1970-01-01
        相关资源
        最近更新 更多