Selenium / Firefox:通过parallel_tests运行测试时,无法在45秒内绑定到锁定端口7054

时间:2015-06-16 15:11:19

标签: firefox selenium rspec

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

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

这一切都源于(貌似)运行firefox webdriver的多个实例。所以我认为这是我的问题 - 是否有办法运行firefox webdriver的多个同步实例,或者是否有更好的路径可以解决这个问题。

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

  • 如果我使用parallel_tests gem:parallel_rspec" file 1" "文件2" "文件3"等同样的问题发生。

    [31mFail / Error:无法从backtrace找到匹配的行[0m      [31mSelenium :: webdriver的::错误:: WebDriverError:[0米      [31m无法在45秒内绑定到锁定端口7054 [0m      [36m#。/ spec_helper.rb:13:在'块(2级)中' [0m

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

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

    START" MyProcess1" file1.rb PING 127.0.0.1 -n 10 || PING :: 1 -n 10 START" MyProcess2" file2.rb PING 127.0.0.1 -n 10 || PING :: 1 -n 10
    等等... :环   超时/ t 1> nul
    tasklist / v | find" MyProcess"> nul&&转到:循环 echo所有任务都已完成。

  • 我也尝试将firefox webdriver交换为phantomjs,完全禁止自己进行操作并拒绝运行一件事。

到目前为止,我在此问题上找到的所有信息都是因为用户无意中运行了多个webdriver实例,我想运行多个实例。

1 个答案:

答案 0 :(得分:0)

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

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

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