60秒以内に安定したFirefox接続を取得できません(127.0.0.1:7055)


80

rspecテストの実行時に次のエラーが発生する

Railsで60秒(127.0.0.1:7055)で安定したFirefox接続を取得できません

最新のルビー(1.9.2)とFirefox(6.0)を使用

rspec-rails、capybara、その他いくつかのgemを使用していますが、問題はないようです。これらのテストは、別の環境(Linux)で正常に実行されます。

回答:


99

[更新-これは(私にとっては)2015年のこの問題の修正である可能性があります| mdurant |]

私は最近この問題に遭遇しました。

正しいSeleniumWebドライバーを使用するには、capybarav1.0.1にアップグレードする必要があります。

確かに私は追加しました:

gem 'selenium-webdriver', '2.25.0'

私のGemfileで。

重要な注意:宝石が更新され、新しいバージョンは、Firefoxのすべてのその後のバージョンのために、リリースしました。現在、Firefox15をサポートするにはバージョンが必要です。
selenium-webdriver2.25.0


11
私は実際に「バンドルアップデートselenium-webdriver」を実行しましたが、どちらの方法でも、目標はselenium-webdrivergemを2.5.0にアップデートすることです。更新後、テストは正常に実行されました。
Srini K 2011

ちょうどしました。遅れて申し訳ありません。
Srini K 2011

1
宝石「セレンwebdriverを」、「> = 2.5.0」 - -しなければならなかったFirefoxの11のために、これは私の宝石のバージョン2.10を得ました...
ZX12R

7
また、Firefox19にはselenium-webdriver2.31.0が必要です。答えは常に「最新のselenium-webdriverを入手する」であるようです。
jwadsa​​ck 2013年

私は常にバージョン番号をオフのままにして、バージョンを更新する必要selenium-webdriverがあるbundle update selenium-webdriverときに実行します。
Jason Swett 2015年

17

UbuntuのFirefox10で動作させることができませんでした。Chromeへの切り替えが役に立ちました。

Chromeドライバーをインストールします。

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

5
あなたがMac上でなら、あなたは、単にできるbrew install chromedriver
ウィル

そのようにしたことを除いて、私のために働いた:(Capybara.javascript_driver = :selenium_chrome設定する代わりにcurrent_driver。)
ティムスコット

Chromeに切り替えると、安定したFirefox接続を確立できましたか?魅力的です。:)
D.パトリック

12

Firefox 12でこれを経験している人にとって、現在のSelenium Webdriver(2.21)はFF12をサポートしていません。私が見つけた唯一の解決策は、Firefoxを使い続けることです。それは、selenium-webdriverがFF12サポートで更新されるまでFirefoxをダウングレードすることです。

これは、Firefoxパッケージを選択し、[パッケージ]メニュー> [バージョンの強制]> [以前のバージョンを選択]をクリックして、シナプスパッケージマネージャーを使用して実行できます。次に、変更を適用します。

Synapticがない場合は、apt-get installsynapticを使用してインストールできます。

更新:Firefox 12のサポートは2.22で追加され、FF13のサポートは2.23で追加されました


どうもありがとう、かなりの時間を節約できました。
slotos 2012年

1
selenium-webdriverは2.22.0.rc1でFF12で動作します
Gazler

10

スペックがヘッドレスサーバーで実行されていたため、このエラーが発生していました。これは、ブラウザがレンダリングするための表示がないことを意味しました。

この記事では、仮想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

これが私を上記の記事に導いたSOの答えでした。また、Xvfbを使用するための代替手段も提供します。


1
その「xfonts-キリル文字」、最後のcが欠落していた
Federico Gaule Palombarani

3

* /var/lib/gems/1.9.1/gems/selenium-webdriver-2.35.1/lib/selenium/webdriver/firefox/launcher.rb:79:in `connect_until_stable ':60秒で安定したFirefox接続を取得できません(127.0.0.1:7055)(Selenium :: WebDriver :: Error :: WebDriverError)*

私は同じ問題を抱えていましたが、更新しselenium-webdriverても役に立ちませんでした(すでに利用可能な最新バージョンでした)。

SSHセッションからスクリプトを実行しようとしましたが、$DISPLAY設定されていませんでした。

この問題は次の方法で修正されました。

export DISPLAY=:0

SSHセッションからRubyスクリプトを開始する前に(echo $DISPLAYXセッションのターミナルで使用して、この変数に何を入力する必要があるかを確認してください)。


2
bundle update selenium-webdriver

プラス1、2015年にこれは私にとって最も簡単な修正でした。バージョン番号をハードコーディングする必要はありません。
Michael Durrant 2015年

1

アプリケーションのGemfileに「launchy」gemを追加すると、FF13.0、Capybara&Seleniumv1.8.24で動作しました。


1
これで問題が解決した場合は、launchyを追加すると、後のバージョンのcapybaraが(依存関係として)プルインされたためだと思います。
Stefan Magnuson 2014

0

これは、誰もが上で言ったことの繰り返しにすぎません。gemfileをチェックして、「selenium-webdriver」に制限がないことを確認してから、「バンドル更新」を実行して機能しました。

私はubuntux64とwindows8x64を使用しています

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.