ヘッドレスサーバーであるAWS EC2インスタンスでFirefoxドライバーを使用してSeleniumテストケースを実行すると、この例外が発生します。Firefoxをインストールし、必要な変更をすべて行いました。
org.openqa.selenium.WebDriverException: org.openqa.selenium.WebDriverException: ポート 7055 のバイナリ FirefoxBinary(/opt/firefox/firefox-bin) への接続に失敗しました。プロセス出力は次のとおりです: �*** e = [例外... "コンポーネントがエラー コードを返しました: 0x80570016 (NS_ERROR_XPC_GS_RETURNED_FAILURE) [nsIJSCID.getService]" nsresult: "0x80570016 (NS_ERROR_XPC_GS_RETURNED_FAILURE)" 場所: "JS フレーム :: chrome://browser/content/utilityOverlay.js :: getShellService :: 行 339" データ: なし]
この例外について誰か助けてくれませんか?
答え1
まず、xvfb をインストールして、「仮想画面」で実行できるようにします。
sudo yum -y install xorg-x11-server-Xvfb
次に、Amazon EC2にFirefoxをインストールするのに役立つこの役立つ投稿を確認してください。これは、EC2でsudo yum install firefoxを実行するだけでは不十分なためです。つまり、基本的にファイルを作成します(私はこれを使用しました要旨) を EC2 インスタンスにダウンロードし、それを実行して Firefox とその依存関係をすべてインストールします。 http://joekiller.com/2012/06/03/install-firefox-on-amazon-linux-x86_64-compiling-gtk/
スクリプトを実行するとFirefoxがインストールされます
/usr/local/bin/firefox
デフォルトではそうだと思います。
インストールが完了したら、上記のリンクでも説明されているように、パスに追加する必要があります。ただし、DISPLAY システム変数も追加する必要があるため、次のようにします...
cat << EOF >> ~/.bashrc
PATH=/usr/local/bin:\$PATH
DISPLAY=:99
export PATH
export DISPLAY
EOF
次に、画面 99 の xvfb を起動して、その「仮想画面」で Firefox を実行できるようにする必要があります。次のようになります...
Xvfb :99 -screen 0 1024x768x16 &
その後、Selenium テストを再実行すると、パス上で Firefox が検出され、その EC2 インスタンス上の正しい「仮想化された」画面で実行されるはずです。
余談ですが、私は Amazon Linux に関して決して専門家ではないので... 頑張ってください。
あるいは、Amazon EC2 Ubuntu マイクロインスタンスで起動できる Selenium サーバーに対して実行することを検討することもできます。これにより、GUI を簡単に設定できます。
答え2
ポート 7055 のバイナリ FirefoxBinary(/opt/firefox/firefox-bin) への接続に失敗しました
新しいバージョンの Firefox をサポートできるように、Selenium Server を (2.53.x に) アップグレードする必要があります。または、別の Web ドライバー (Chrome など) を使用してください。
Maven を使用している場合は、次の行を使用しますpom.xml
。
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>2.53.1</version>
<scope>test</scope>
</dependency>
見る: