rspecテストの実行時に次のエラーが発生する
Railsで60秒(127.0.0.1:7055)で安定したFirefox接続を取得できません
最新のルビー(1.9.2)とFirefox(6.0)を使用
rspec-rails、capybara、その他いくつかのgemを使用していますが、問題はないようです。これらのテストは、別の環境(Linux)で正常に実行されます。
回答:
[更新-これは(私にとっては)2015年のこの問題の修正である可能性があります| mdurant |]
私は最近この問題に遭遇しました。
正しいSeleniumWebドライバーを使用するには、capybarav1.0.1にアップグレードする必要があります。
確かに私は追加しました:
gem 'selenium-webdriver', '2.25.0'
私のGemfileで。
重要な注意:宝石が更新され、新しいバージョンは、Firefoxのすべてのその後のバージョンのために、リリースしました。現在、Firefox15をサポートするにはバージョンが必要です。selenium-webdriver
2.25.0
selenium-webdriver
があるbundle update selenium-webdriver
ときに実行します。
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
brew install chromedriver
Capybara.javascript_driver = :selenium_chrome
設定する代わりにcurrent_driver
。)
Firefox 12でこれを経験している人にとって、現在のSelenium Webdriver(2.21)はFF12をサポートしていません。私が見つけた唯一の解決策は、Firefoxを使い続けることです。それは、selenium-webdriverがFF12サポートで更新されるまでFirefoxをダウングレードすることです。
これは、Firefoxパッケージを選択し、[パッケージ]メニュー> [バージョンの強制]> [以前のバージョンを選択]をクリックして、シナプスパッケージマネージャーを使用して実行できます。次に、変更を適用します。
Synapticがない場合は、apt-get installsynapticを使用してインストールできます。
更新:Firefox 12のサポートは2.22で追加され、FF13のサポートは2.23で追加されました
スペックがヘッドレスサーバーで実行されていたため、このエラーが発生していました。これは、ブラウザがレンダリングするための表示がないことを意味しました。
この記事では、仮想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
* /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 $DISPLAY
Xセッションのターミナルで使用して、この変数に何を入力する必要があるかを確認してください)。
bundle update selenium-webdriver
アプリケーションのGemfileに「launchy」gemを追加すると、FF13.0、Capybara&Seleniumv1.8.24で動作しました。