【问题标题】:unable to obtain stable firefox connection in 60 seconds (127.0.0.1:7055)无法在 60 秒内获得稳定的 Firefox 连接 (127.0.0.1:7055)
【发布时间】:2011-08-31 21:20:56
【问题描述】:

运行 rspec 测试时出现以下错误

在 rails 中无法在 60 秒 (127.0.0.1:7055) 内获得稳定的 firefox 连接

使用最新的 ruby​​ (1.9.2) 和 firefox (6.0)

使用 rspec-rails、capybara 和其他几个 gem,但它们似乎不是问题。这些测试在另一个环境 (linux) 中运行良好。

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3 firefox automated-tests


    【解决方案1】:

    [更新 - 在 2015 年 |mdurrant|]

    我遇到了this problem lately

    您应该升级到 capybara v1.0.1 以获得正确的 selenium webdriver。

    为了确保我添加了:

    gem 'selenium-webdriver', '2.25.0'
    

    在我的 Gemfile 中。

    重要提示
    selenium-webdriver gem 已更新,并为 Firefox 的每个后续版本发布了一个新版本。目前需要版本 2.25.0 来支持 Firefox 15

    【讨论】:

    • 我实际上做了“捆绑更新 selenium-webdriver”,但无论哪种方式,目标都是将 selenium-webdriver gem 更新到 2.5.0。更新后测试运行良好。
    • 刚刚做了。抱歉耽搁了。
    • 不得不做 - gem 'selenium-webdriver', '>= 2.5.0' - for firefox 11。这让我得到了 gem 版本 2.10...
    • 而且 Firefox 19 需要 selenium-webdriver 2.31.0。似乎答案总是“获取最新的 selenium-webdriver”。
    • 我总是把selenium-webdriver的版本号去掉,当版本需要更新时再做bundle update selenium-webdriver
    【解决方案2】:

    我无法让它在 Ubuntu 上与 Firefox 10 一起使用。切换到 Chrome 有帮助。

    安装Chrome Driver

    spec_helper.rb:

    Capybara.register_driver :selenium_chrome do |app|   
      Capybara::Selenium::Driver.new(app, :browser => :chrome)
    end
    

    在您的规范中:

    Capybara.current_driver = :selenium_chrome
    ... tests ...
    Capybara.use_default_driver
    

    【讨论】:

    • 如果您使用的是 Mac,您可以简单地 brew install chromedriver
    • 为我工作,除了这样做:Capybara.javascript_driver = :selenium_chrome(而不是设置current_driver。)
    • 切换到 Chrome 帮助您建立了稳定的 Firefox 连接?迷人。 :)
    【解决方案3】:

    对于任何使用 Firefox 12 的用户,当前的 selenium webdriver (2.21) 不支持 FF12。我发现的唯一解决方案是继续使用 Firefox,就是降级 Firefox,直到 selenium-webdriver 更新为 FF12 支持。

    这可以通过选择 Firefox 包,然后单击包菜单 > 强制版本 > 选择早期版本,使用突触包管理器来完成。然后应用更改。

    如果没有 synaptic,可以使用 apt-get install synaptic 安装。

    更新:Firefox 12 支持在 2.22 中添加,FF13 支持在 2.23 中添加

    【讨论】:

    • 非常感谢,节省了我不少时间。
    • selenium-webdriver 适用于我的 FF12 和 2.22.0.rc1
    【解决方案4】:

    我收到此错误是因为规范是在无头服务器上运行的。这意味着没有可供浏览器渲染的显示器。

    This article 建议使用虚拟 X 服务器 (X Virtual Framebuffer)。这允许浏览器在虚拟显示器中呈现。

    像这样安装:

    sudo apt-get install xvfb
    sudo apt-get install x11-xkb-utils
    sudo apt-get install xfonts-100dpi xfonts-75dpi xfonts-scalable xfonts-cyrillic
    

    然后使用前面的命令xvfb-run 运行规范。

    xvfb-run bundle exec rake spec:features
    

    This was the SO answer 将我引至上述文章。它还提供了另一种使用 Xvfb 的方法。

    【讨论】:

    • 它的“xfonts-cyrillic”,最后一个 c 丢失了
    【解决方案5】:

    */var/lib/gems/1.9.1/gems/selenium-webdriver-2.35.1/lib/selenium/webdriver/firefox/launcher.rb:79:in `connect_until_stable': 无法在 Firefox 中获得稳定的连接 60 秒 (127.0.0.1:7055)(Selenium::WebDriver::Error::WebDriverError)*

    我遇到了同样的问题,更新 selenium-webdriver 没有帮助(它已经是可用的最新版本)。

    事实证明,我尝试从 SSH 会话运行我的脚本,但未设置 $DISPLAY

    问题已通过以下方式解决:

    export DISPLAY=:0
    

    在从 SSH 会话启动我的 Ruby 脚本之前(在 X 会话的终端中使用 echo $DISPLAY 来找出需要放入此变量的内容)。

    【讨论】:

      【解决方案6】:
      bundle update selenium-webdriver
      

      【讨论】:

      • Plus 1,在 2015 年,这对我来说是最简单的解决方法。不要乱用硬编码版本号。
      【解决方案7】:

      将“启动”gem 添加到我的应用程序的 Gemfile 与 FF13.0、Capybara 和 Selenium v​​1.8.24 一起使用。

      【讨论】:

      • 我怀疑如果这解决了问题,那只是因为添加 launchy 会导致更高版本的 capybara 被引入(例如,作为依赖项)。
      【解决方案8】:

      这只是对上面每个人所说的话的重申。我检查了我的 gemfile 并确保“selenium-webdriver”没有任何限制,然后运行“捆绑更新”并且它有效。

      我使用的是 ubuntux64 和 windows 8 x64

      【讨论】:

        猜你喜欢
        • 2016-08-13
        • 2019-05-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-15
        • 2014-11-02
        • 2012-09-17
        相关资源
        最近更新 更多