ChatGPT解决这个技术问题 Extra ChatGPT

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

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) 和其他几个 gem,我还添加了 launchy gem,但它们似乎不是问题。我正在使用 Windows 7

展示一个复制案例(如果它很大,请将其发布到 gist.github.com)。
我们刚刚在周末开始发生这种情况,以进行以前稳定的测试,并进行了捆绑更新来修复它。
将浏览器默认更改为 chrome 的 selenium-webdriver 支持版本是否可以解决此问题?
我在这里发布了复制案例。 gist.github.com/4536512
FWIW:您的要点是堆栈跟踪,而不是复制案例。

b
ballPointPenguin

我有同样的问题(在 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 中。


谢谢!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !在 Mac OS X 10.6.8/ruby 1.9.3-p194 上更新 selenium-webdriver 对我有用
完全有效!非常感谢。我正在使用 selenium-webdriver 2.34.0 和 firefox 19(我将 23 降级到 19,我没有尝试 FF 23)没有任何错误。
是的,OS X 中的 Firefox 22 就在那里,最终测试超时并出现该错误。
这是适用于 OS X 的 Firefox 19 的美国英文版:ftp.mozilla.org/pub/mozilla.org/firefox/releases/19.0/mac/en-US
这不应该是批准的答案。 stackoverflow.com/a/18263152/712188 是更正确的答案。
M
Micah Alcorn

Selenium Webdriver 似乎经常更新以跟上 Firefox。但是你怎么知道你需要哪个版本?希望即使版本更改,此过程也能正常工作:

访问 http://www.seleniumhq.org/download/。向下滚动到 Selenium 客户端和 WebDriver 语言绑定。在该部分的 Ruby 语言行中,单击“更改日志”(直接链接)。在更改日志中,确定您的 Firefox 版本需要哪个版本的 Selenium。

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

gem 'selenium-webdriver', '2.35.0'

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

更新 一个 StackOverflow answer 表示更改日志在源代码存储库中的更新速度可能比在 seleniumhq.org 中的更新时间要快。 Ruby 的存储库更改日志位于:https://github.com/SeleniumHQ/selenium/blob/master/rb/CHANGES

降级 Firefox

如果您需要在 Ubuntu 12.04 上降级 Firefox,this answer 说明了如何返回到 Firefox 20。here 给出了关于切换到任何 Firefox 版本的方法的更一般描述。然后使用 this answer 暂停 Firefox 更新,直到 Selenium 发布适用于更高版本 Firefox 的更新。

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


r
rusllonrails
bundle update selenium-webdriver

M
Matt Gibson

刚刚在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 ?
具体不知道,但它是一个包含并在所有测试开始之前运行的文件。
p
pgerstoft

当 selenium 和 firefox 版本不兼容时会发生此错误。

有两种选择。

更新 selenium: gem update selenium-webdriver 如果仍然失败,则 selenium 尚未更新到最新版本。降级 firefox 的版本: sudo apt-get purge firefox 查看可供下载的软件包 apt-cache showpkg firefox sudo apt-get install firefox=#older_version#


S
Shiprack

对我有用的神奇组合是 Firefox 19.0 和 selenium web-driver 2.32.1(在撰写本文时最新)。 Firefox 20.x 和 21.x 不起作用。我不得不降级 Firefox。还要记住(至少在 Mac OS 上),如果您转到 FireFox 菜单 -> 关于 Firefox,它将自动升级到最新版本。不要那样做。


o
orion

如果上述方法现在有效,就像我的情况一样,请试一试。

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

原来,headless 使用的端口存在问题。有另一个进程使用该端口。

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


t
ttguy

当我从一个终端启动 irb 时,我遇到了这个问题,我将自己起诉到另一个用户。当我以该用户身份运行 irb 时,我会收到此错误。但如果我以 root 身份运行,则不会。而不是当我退出到登录用户拥有的外壳时。


A
Alexander Williamson

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

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

cd D:\Projects\LazyAutomation
bundle update

B
Ben

对于使用 Vagrant 的任何人,如果您登录启用 XServer firefox 可以正确启动,这为我解决了这个问题。流浪者 ssh -- -X


j
juliangonzalez

降级火狐。

如果已经使用 gem 'headless' 并且现在不希望更新 gems,那么您需要降级 firefox。

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

删除 Ubuntu 最新版本附带的 firefox

sudo apt-get purge firefox

您可以按照说明here删除一些相关数据作为补充

现在,安装旧版本的 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 并在 /usr/share/applications/ 中创建一个 .desktop 文件以从 Dock 访问它。并让 Selenium 默认查找旧版本。 Take this for reference


7
7stud

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

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)


这不是这个问题的答案。

关注公众号,不定期副业成功案例分享
关注公众号

不定期副业成功案例分享

领先一步获取最新的外包任务吗?

立即订阅