【问题标题】:Selenium/Firefox: Unable to bind to locking port 7054 within 45 seconds when running tests through parallel_testsSelenium/Firefox:通过 parallel_tests 运行测试时,无法在 45 秒内绑定到锁定端口 7054
【发布时间】:2015-06-16 15:11:19
【问题描述】:

我有七个单独的规范文件(它们的所有意图和目的都是相同的,登录到网站,导航到页面,查找元素,注销) - 单独运行它们完成没有任何错误。

但是,我希望能够同时运行所有七个文件。它们必须在一台 PC 上本地运行。我每天都需要这样做,所以我需要它是一个可靠的过程。我已经尝试了下面详述的几个选项,它们都具有相同的问题。

这一切(似乎)源于运行多个 firefox webdriver 实例。所以我想这是我的问题 - 有没有办法同时运行多个 firefox webdriver 实例,或者是否有更好的路线一起完成。

  • 如果我同时手动启动所有七个 rspec(或 ruby​​ 文件)(全选,按 Enter),我最终会遇到大量错误“无法在 45 秒内绑定到锁定端口 7054”的实例

  • 如果我使用parallel_tests gem:parallel_rspec "file 1" "file 2" "file 3" etc 会出现同样的问题。

    [31mFailure/Error: Unable to find matching line from backtrace[0m [31mSelenium::WebDriver::Error::WebDriverError:[0m [31m无法在45秒内绑定到锁定端口7054[0m [36m# ./spec_helper.rb:13:in `block (2 levels) in '[0m

第 13 行具体为:@driver = Selenium::WebDriver.for :firefox

  • 我创建了一个批处理文件来将每个 rspec 文件作为一个单独的进程启动。这是迄今为止最好的选择,但我仍然会遇到一些相同错误的实例。

    启动“MyProcess1”file1.rb PING 127.0.0.1 -n 10 ||平 ::1 -n 10 开始“MyProcess2”文件2.rb PING 127.0.0.1 -n 10 || PING ::1 -n 10
    ETC... :环形 超时 /t 1 >nul
    tasklist /v|find "MyProcess">nul && goto :loop echo 所有任务都已完成。

  • 我还尝试将 firefox 网络驱动程序换成 phantomjs,它完全自找麻烦,拒绝运行任何东西。

到目前为止我发现的关于这个问题的所有信息都是因为用户无意中运行了 webdriver 的多个实例,我想运行多个实例。

【问题讨论】:

    标签: firefox selenium rspec


    【解决方案1】:

    此问题与 firefox 显示设置有关。

    默认情况下,firefox webdriver 在超时前等待 45 秒以启动 firefox。如果 firefox 找不到合适的显示,这个错误消息将报告给控制台。尝试在 linux 上设置显示(以下命令已为我解决):

    $/usr/bin/Xvfb :99 -screen 0 1280x1024x24 &

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-22
      • 2012-11-28
      • 2016-07-03
      相关资源
      最近更新 更多