いくつかのSelenium-Testsを実行しています。 Eclipseから直接起動すると、すべて正常に動作します。しかし、Mavenからそれらを起動すると、次の例外が発生します。
org.openqa.Selenium.WebDriverException(Failed to connect to binary FirefoxBinary(C:\winapp\Firefox\firefox.exe) on port 7055; process output follows:
null
Build info: version: '2.26.0', revision: '18040', time: '2012-11-02 09:44:45'
System info: os.name: 'Windows 7', os.Arch: 'x86', os.version: '6.1', Java.version: '1.6.0_35'
Driver info: driver.version: FirefoxDriver)
Firefox 10.0.10 ESRを使用しています。 Selenium 2.25.0でも試しました。
これがpom.xmlの最新バージョンです。
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.Selenium</groupId>
<artifactId>Selenium-Java</artifactId>
<version>2.26.0</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.Selenium</groupId>
<artifactId>Selenium-server</artifactId>
<version>2.26.0</version>
<exclusions>
<exclusion>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.thoughtworks.xstream</groupId>
<artifactId>xstream</artifactId>
<version>1.4.1</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>org.jdom</groupId>
<artifactId>jdom2</artifactId>
<version>2.0.3</version>
</dependency>
</dependencies>
詳細な情報を提供できる場合は、お知らせください。
編集:pom.xmlを更新しました
edit2:私が一番驚いたのは、問題なくEclipseからテストを実行できることです。たとえば、「mvn install」を呼び出すと、それらが発生します
問題がどこにあるのかを見つけました。
FireFoxDriverのインスタンス化に使用するFirefoxProfileに追加するいくつかの拡張機能をロードしました。これらのプラグインは、Java/main/resourcesの下にあります。 Eclipseではすべてが正常に機能しましたが、Mavenを介してこれらのプラグインにアクセスできませんでした。これらのファイルを一時フォルダーにコピーし、そこからロードすると、Mavenからでも動作しました。
ご協力いただきありがとうございます
このエラーが発生した場合、通常は次の2つのいずれかです。
Seleniumバージョンはブラウザーバージョンをサポートしていません Eclipse vs Mavenから実行した場合、Selenium/browserバージョンが同じであることを再確認してください。 EclipseとMavenが同じSeleniumバージョンを使用するように構成されていることを再確認してください。これは、ブラウザーの自動更新時に発生したため、ブラウザーでオフにしました。
Seleniumテストはヘッドレスモードで実行されています Eclipseと同じマシンで手動でmvnを実行している場合はほとんどありません。これは、JenkinsサーバーでMavenを介してSeleniumを実行しているときに発生しました。 Jenkinsサーバーはヘッドレスモードで実行されていました。頭のないものを理解するのに少し時間をかけました。LinuxなどでDISPLAY環境変数を設定したと思います。
これをPOMに追加してみてください
更新:
<dependency>
<groupId>org.seleniumhq.webdriver</groupId>
<artifactId>Selenium-firefox-driver</artifactId>
<version>2.XX.X</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.Selenium</groupId>
<artifactId>Selenium-server</artifactId>
<version>2.XX.X</version>
</dependency>
Linuxの更新後に同様の問題が発生しました。 Seleniumバージョン(2.42.2および2.43.1)とfirefox(27.0.1から32.0.2)の多くの組み合わせをテストしましたが、問題は常に存在していました。
私たちはOpenMandrivaの下にあり、プロジェクトはEclipseとMavenの下にあります。
私たちのための解決策を見つけました、それは次のMaven依存関係を置き換えることでした
<dependency>
<groupId>org.seleniumhq.Selenium</groupId>
<artifactId>Selenium-Java</artifactId>
<version>2.43.1</version>
</dependency>
以下のすべてによって:
<dependency>
<groupId>org.seleniumhq.Selenium</groupId>
<artifactId>Selenium-firefox-driver</artifactId>
<version>2.43.1</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.Selenium</groupId>
<artifactId>Selenium-support</artifactId>
<version>2.43.1</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.Selenium</groupId>
<artifactId>Selenium-api</artifactId>
<version>2.43.1</version>
</dependency>
<dependency>
<groupId>org.Apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.0</version>
</dependency>
<dependency>
<groupId>org.Apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.3.5</version>
</dependency>
この解決策は本当の問題を隠しているだけだろうか?
しばらくこれと戦い、ここにリストされているオプションのほとんど(すべてではないにしても)を試した後、未使用のJARを削除することでこのエラーをやっと取り除きました-ios-server-0.6.5-jar-with-dependencies.jar
ビルドパスで、FF34
およびSelenium jar 2.48.2
。
この衰弱する問題に遭遇した場合に備えて、これを別のオプションとして投稿したかっただけです。
Firefox 36でこの問題が発生しましたが、35と44でも同じ問題に直面していました。
結論として、Firefoxを37にアップグレードするか、33未満にダウングレードします。
最新のSeleniumサーバーバージョンを使用してみてください。ブラウザとSeleniumサーバー間の互換性を確認する必要があります。
<dependency>
<groupId>org.seleniumhq.Selenium</groupId>
<artifactId>Selenium-Java</artifactId>
<version>3.141.59</version>
</dependency>
my recommendation is
===> switch to firefox version 50.0 [latest One] ,
===> download the gecko driver from [.](https://github.com/mozilla/geckodriver/releases) and
===> Selenium version 3.0.1
<dependency>
<groupId>org.seleniumhq.Selenium</groupId>
<artifactId>Selenium-Java</artifactId>
<version>3.0.1</version>
</dependency>
==> On your Code
private WebDriver driver;
System.setProperty("webdriver.gecko.driver", "PATH to GECKO DRIVER");
driver = new FirefoxDriver();
and yes you see the below output in your console :
Dec 17, 2016 6:40:45 PM org.openqa.Selenium.remote.ProtocolHandshake createSession
INFO: Attempting bi-dialect session, assuming Postel's Law holds true on the remote end
14819XXXXXXX5 mozprofile::profile INFO Using profile path C:\Users\User\AppData\Local\XXXXX\Rust_XXXprofile.OXXXXXXXXXXX7S
148XXXXXXXXX0 geckodriver::marionette INFO Starting browser C:\Program Files\Mozilla Firefox\firefox.exe
148XXXXXXXXX1 geckodriver::marionette INFO Connecting to Marionette on localhost:XXXXXXX
148198XXXX077 Marionette INFO Listening on port 53532
Dec 17, 2016 6:40:55 PM org.openqa.Selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: W3C
[Child 4104] ###!!! ABORT: Aborting on channel error.: file c:/builds/moz2_slave/m-rel-w32-00000000000000000000/build/src/ipc/glue/MessageChannel.cpp, line XXXX
Dec 17, 2016 6:41:13 PM org.openqa.Selenium.os.UnixProcess destroy
この問題を修正しようとしてFirefoxとSeleniumの両方を最新バージョンに更新し、それでも問題が解決しない場合は、「更新して再起動」を使用してFirefoxを更新した可能性があります。
Firefoxをシャットダウンし、Firefox実行可能ファイルが実行されていないことを確認します。その後、テストしてみてください。これで動作するはずです。
これは、「Restart to Update」を使用してFirefoxバイナリが正確に更新されたときに関連していると推測しています