76

シナリオをテストしているときに、テスト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)、および他のいくつかのgemを使用して、gemcapybara (2.0.2)も追加しましlaunchyたが、問題はないようです。そして、私はを使用してWindows 7います。

4

12 に答える 12

89

同じ問題が発生しました(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-webkit0.12.1を使用しています。

安全のため、Gemfileにselenium-webdriver2.29.0を追加しました。

于 2013-01-27T20:59:17.027 に答える
47

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

  1. http://www.seleniumhq.org/download/にアクセスします。

  2. Selenium Client&WebDriverLanguageBindingsまで下にスクロールします。

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

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

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

gem 'selenium-webdriver', '2.35.0'

次に、実行bundle updateしてインストールします。Sporkを使用している場合は、テストを再実行する前に、Sporkを再起動することを忘れないでください。

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

Firefoxのダウングレード

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

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

于 2013-08-15T22:47:28.777 に答える
10
bundle update selenium-webdriver
于 2015-01-30T15:32:19.133 に答える
9

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

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
于 2015-07-30T15:42:08.017 に答える
3

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

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

  1. セレンの更新:

    gem update selenium-webdriver

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

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

    sudo apt-get purge firefox

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

    sudo apt-get install firefox=#older_version#

于 2014-10-10T18:27:19.933 に答える
1

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

于 2013-05-21T12:27:01.067 に答える
1

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

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

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

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

于 2016-08-26T00:58:45.313 に答える
0

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

于 2013-04-27T14:52:28.447 に答える
0

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

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

cd D:\Projects\LazyAutomation
bundle update
于 2014-01-07T11:06:07.797 に答える
0

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

于 2015-09-26T02:26:04.853 に答える
0

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

すでにgem 'headless'gemを使用して更新することが今のところ望ましくない場合は、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にデフォルトで古いバージョンを見つけさせます。これを参考にしてください

于 2018-10-04T14:23:27.533 に答える
-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)

于 2013-05-17T23:03:57.777 に答える