web-dev-qa-db-ja.com

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を使用しています。

74
Panjiyar Rahul

同じ問題がありました(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

安全のために、GelefileにSelenium-webdriver 2.29.0を追加しました。

87

Selenium WebdriverはFirefoxに追いつくために頻繁に更新されるようです。しかし、どのバージョンが必要かをどのようにして知るのでしょうか?バージョンが変わってもこの手順がうまくいくことを願っています:

  1. http://www.seleniumhq.org/download/ に移動します。

  2. Selenium Client&WebDriver Language Bindingsまでスクロールします。

  3. そのセクションのRuby言語行で、「ログの変更」(- 直接リンク )をクリックします。

  4. 変更ログで、Firefoxのバージョンに必要なSeleniumのバージョンを決定します。

Bundlerを使用している場合は、bundle show Selenium-webdriverを実行して、使用しているバージョンを確認してください。 2.35.0などに更新するには、次の行をGemfileに追加します。

gem 'Selenium-webdriver', '2.35.0'

bundle updateを実行してインストールします。 Sporkを使用している場合は、テストを再実行する前に必ずSporkを再起動してください。

Update1つの StackOverflow answer は、変更ログがseleniumhq.orgよりもソースコードリポジトリでより早く更新される可能性があることを示します。 Ruby=のリポジトリ変更ログはここにあります: https://github.com/SeleniumHQ/Selenium/blob/master/rb/CHANGES

Firefoxのダウングレード

Ubuntu 12.04でFirefoxをダウングレードする必要がある場合、 この回答 Firefox 20に戻る方法を説明します。Firefoxの任意のバージョンに切り替える方法のより一般的な説明は こちら 。次に、 this answer を使用して、SeleniumがFirefoxの新しいバージョンで動作するアップデートをリリースするまでFirefoxのアップデートを保留にします。

私の場合、Firefoxをダウングレードしたのは、Selenium Webdriverが最新バージョンに対応するように最近更新されたことがわかったためです。最初にSeleniumの更新を確認してください。

46
Mark Berry
bundle update Selenium-webdriver
10
rusllonrails

CIサーバーでこれに遭遇しましたが、それはFirefoxに使用するディスプレイがないためであることがわかりました。私はSelenium Webdriverがそれ以上の介入なしで動作するだろうと思っていましたが、そうではありませんでした。

Xvfbをミックスに追加すると機能しました。

Rails Cucumber機能の実行:

gem 'headless'

次に、features/support/env.rb

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

    headless = Headless.new
    headless.start
  end
end
9
Matt Gibson

このエラーは、Seleniumとfirefoxのバージョンに互換性がない場合に発生します。

2つのオプションがあります。

  1. Seleniumを更新します。

    gem update Selenium-webdriver

    それでも失敗する場合は、Seleniumが最新バージョンに更新されていません。

  2. Firefoxのバージョンをダウングレードします。

    Sudo apt-get purge firefox

    ダウンロード可能なパッケージを確認するにはapt-cache showpkg firefox

    Sudo apt-get install firefox=#older_version#

3
pgerstoft

私のために働いた魔法の組み合わせは、Firefox 19.0とSelenium Webドライバー2.32.1(執筆時点で最新)でした。 Firefox 20.xおよび21.xは機能しませんでした。 Firefoxをダウングレードする必要がありました。 (少なくともMac OSでは)FireFoxメニュー-> Firefoxについてを選択すると、自動的に最新リリースにアップグレードされることに注意してください。それをしないでください。

1
Shiprack

私の場合のように、上記がうまく機能する場合、これを試してみてください。

あるマシンでタイムアウトエラーが発生し、別のマシンでは発生しませんでした。両方のマシンは、まったく同じバージョンのすべてを実行するシンクライアントです。そのため、互換性のないFirefoxバージョンは除外されました(一方のマシンではエラーが発生し、もう一方のマシンではエラーは発生しませんでした)

ヘッドレスが使用しているポートに問題があることが判明しました。そのポートを使用する別のプロセスがありました。

以下は私のために問題を修正しました:
次の行を。zshenvファイルに追加します
export XVFB_DISPLAY='new-port-number'
次に、ターミナルでコマンドzshを実行して変更を設定します

1
orion

私にとって、私はすでにgemを更新していましたが、その後バンドルを更新する必要がありました。

PowerShellで、ディレクトリに移動し、バンドルを更新します。

cd D:\Projects\LazyAutomation
bundle update

別のユーザーに自分を訴えた端末からirbを起動したときに、この問題が発生しました。そのユーザーとしてirbを実行すると、このエラーが発生します。しかし、ルートとして実行した場合はそうではありません。そして、ログインしたユーザーが所有するシェルに戻ったときではありません。

0
ttguy

Firefoxをダウングレードします。

すでにgem 'headless'を使用しており、gemを更新することが今のところ望ましくない場合は、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

新しいターミナルタブを開き、キュウリの仕様/ Seleniumの仕様を実行します。

Firefoxの最新バージョンをダウンロードし、.desktop/usr/share/applications/ファイルを作成して、ドックからアクセスできるようになりました。そして、デフォルトでSeleniumに古いバージョンを検出させます。 参照のためにこれを取る

0
juliangonzalez

vagrantを使用している人は誰でも、XServerを有効にしてログインすると、firefoxが正常に起動し、解決されました。 vagrant ssh--X

0
Ben