60秒内无法获得稳定的Firefox连接(127.0.0.1:7055)


75

在测试场景cucumber时,运行rspec测试时出现以下错误

无法在60秒内获得稳定的firefox连接(127.0.0.1:7055)(Selenium :: WebDriver :: Error :: WebDriverError)

使用ruby (1.9.2) selenium-webdriver (2.27.2)firefox (19.0)

使用rspec-rails (2.12.1)capybara (2.0.2)和其他几个宝石,我也有增加launchy的宝石,但他们似乎并不成为一个问题。我正在使用Windows 7


显示一个复制案例(如果很大,将其发布到gist.github.com)。
Andrei Botalov 2013年

1
我们刚刚开始在周末进行以前稳定的测试,并进行了捆绑更新以解决此问题。
pschuegr

将浏览器默认更改为chrome-selenium-webdriver支持的版本是否可以解决此问题?
Panjiyar Rahul 2013年

我在这里张贴了复制案例。gist.github.com/4536512
Panjiyar Rahul

FWIW:您的要旨是堆栈跟踪,而不是复制案例。
pje

Answers:


88

我有同样的问题(在Linux上)。固定于:

gem update selenium-webdriver

现在我正在使用ruby 1.9.3-p286,selenium-webdriver 2.29.0,firefox 18.0以及rspec-rails 2.9.0,capybara 1.1.2和capybara-webkit 0.12.1

为了安全起见,我将selenium-webdriver 2.29.0添加到了我的Gemfile中。


谢谢!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !更新selenium-webdriver在Mac OS X 10.6.8 / ruby​​ 1.9.3-p194上为我工作了
7stud 2013年

完全可以!非常感谢。我正在使用selenium-webdriver 2.34.0和firefox 19(我将23降级为19,但我没有尝试FF 23)没有任何错误。
ersentekin

是的,在最终由于该错误导致测试超时之前,OS X中的Firefox 22只是坐在那里。
莎拉·弗赛尔斯

这是用于OS X的Firefox 19的美国英语版本:ftp.mozilla.org/pub/mozilla.org/firefox/releases/19.0/mac/zh-CN
Sarah Vessels

5
这不应是批准的答案。stackoverflow.com/a/18263152/712188是更正确的答案。
Dean Galvin

47

似乎Selenium Webdriver经常更新以跟上Firefox的步伐。但是您怎么知道您需要哪个版本?希望即使版本更改,此过程也将起作用:

  1. 转到http://www.seleniumhq.org/download/

  2. 向下滚动到Selenium Client和WebDriver语言绑定

  3. 在该部分的Ruby语言行中,单击“更改日志”(直接链接)。

  4. 在更改日志中,确定Firefox版本所需的Selenium版本。

如果您使用的是Bundler,请运行bundle show selenium-webdriver以查看具有哪个版本。例如,要更新到2.35.0,请将此行添加到您的Gemfile

gem 'selenium-webdriver', '2.35.0'

然后运行bundle update安装。如果您使用的是Spork,请记住在重新运行测试之前重新启动它。

“更新 一个StackOverflow”答案表明,更改日志可能比seleniumhq.org更快地在源代码存储库中更新。Ruby的存储库更改日志位于:https : //github.com/SeleniumHQ/selenium/blob/master/rb/CHANGES

降级Firefox

如果您需要在Ubuntu 12.04上降级Firefox,此答案说明了如何返回Firefox20 。此处提供了切换到任何版本Firefox的方法的更一般性描述。然后使用此答案搁置Firefox更新,直到Selenium发布与更高版本的Firefox兼容的更新为止。

就我而言,我将Firefox降级只是为了发现Selenium Webdriver最近已更新为可以处理最新版本,因此请首先检查Selenium更新!



9

只是在CI服务器上遇到了这个问题,发现这是因为Firefox无法使用显示。我以为Selenium Webdriver可以使其工作而无需进一步干预,但事实并非如此。

将Xvfb添加到混合中使其工作。

对于运行Cucumber功能的Rails:

gem 'headless'

然后在features / support / env.rb中

Before do
  if Capybara.current_driver == :selenium
    require 'headless'

    headless = Headless.new
    headless.start
  end
end

什么是javascript,相当于您的features / support / env.rb?
Scott Stensland 2015年

尚不明确,但这是一个包含并在所有测试开始之前运行的文件。
马特·吉布森

3

当硒和Firefox版本不兼容时,会发生此错误。

有两种选择。

  1. 更新硒:

    gem update selenium-webdriver

    如果仍然失败,则表明硒尚未更新为最新版本。

  2. 降级firefox的版本:

    sudo apt-get purge firefox

    查看可供下载的软件包 apt-cache showpkg firefox

    sudo apt-get install firefox=#older_version#


1

对我有用的魔术组合是Firefox 19.0和Selenium Web-driver 2.32.1(在撰写本文时为最新)。Firefox 20.x和21.x无法正常工作。我不得不降级Firefox。还要记住(至少在Mac OS上),如果转到FireFox菜单->关于Firefox,它将自动升级到最新版本。不要那样做


1

如果上面的方法现在可以正常工作,例如我的情况,请尝试一下。

我在一台机器而不是另一台机器上收到超时错误。两台机器都是运行完全相同版本的瘦客户机。这样就排除了不兼容的Firefox版本(一台计算机上发生错误,而另一台计算机上没有发生错误)

原来,无头使用的端口存在问题。使用该端口还有另一个过程。

下面为我​​解决了这个问题:
.zshenv 文件中添加以下行,
export XVFB_DISPLAY='new-port-number'
然后zsh在终端中运行命令以设置更改


0

从终端向其他用户起诉时,从irb启动irb时遇到了这个问题。当我以该用户身份运行irb时,我会收到此错误。但是如果我以root身份运行则不会。当我退出登录用户所拥有的shell时,不是这样。


0

对我来说,我已经更新了gems,但是随后需要更新我的软件包。

在powershell中,导航到您的目录,然后更新包:

cd D:\Projects\LazyAutomation
bundle update

0

对于使用Vagrant的任何人,如果您登录启用XServer,firefox都可以正确启动,这对我来说已经解决了。流浪ssh--X


0

降级Firefox。

如果目前gem 'headless'不希望使用和更新gems,则需要降级Firefox。

对于Ubuntu(但其他Linux发行版将非常相似),您应该:

删除Ubuntu最新版本随附的firefox

sudo apt-get purge firefox

您可以作为解释的去除一些相关的数据补充在这里

现在,安装旧版本的Firefox。对我来说,42.0版本有效(因为我们的Travis.ci使用它)

$ export FIREFOX_SOURCE_URL='https://download.mozilla.org/?product=firefox-42.0&lang=en-US&os=linux64'
$ wget --no-verbose -O /tmp/firefox-42.0.tar.bz2 $FIREFOX_SOURCE_URL
$ tar xvC ~/. -f /tmp/firefox-42.0.tar.bz2
ln -s ~/firefox/firefox ~/bin/firefox

打开一个新的终端标签并运行您的黄瓜规格/硒规格。

现在,您可以下载最新版本的Firefox,并在其中创建.desktop文件 /usr/share/applications/以从扩展坞访问它。并让Selenium默认查找较旧的版本。以此为参考


-3

在遵循ballPointPenguin的建议之后,我现在可以使用watir-webdriver来检索本地文件,本地apache安装的htdocs目录中的文件或Web上的文件:

1) file:///Users/me/jquery_programs/1.htm
2) 'http://localhost:8080/my.html'
3) 'http://www.google.com'

require 'watir-webdriver'

browser = Watir::Browser.new :firefox
browser.goto 'http://localhost:8080/my.html'

更新之前,我得到了错误:

`connect_until_stable':在60秒内无法获得稳定的Firefox连接(127.0.0.1:7055)(Selenium :: WebDriver :: Error :: WebDriverError)


这不是这个问题的答案。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.