web-dev-qa-db-ja.com

MavenでSeleniumを使用してバイナリFirefoxBinaryに接続できませんでした

いくつかの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」を呼び出すと、それらが発生します

33
kirschmichel

問題がどこにあるのかを見つけました。

FireFoxDriverのインスタンス化に使用するFirefoxProfileに追加するいくつかの拡張機能をロードしました。これらのプラグインは、Java/main/resourcesの下にあります。 Eclipseではすべてが正常に機能しましたが、Mavenを介してこれらのプラグインにアクセスできませんでした。これらのファイルを一時フォルダーにコピーし、そこからロードすると、Mavenからでも動作しました。

ご協力いただきありがとうございます

5
kirschmichel

このエラーが発生した場合、通常は次の2つのいずれかです。

Seleniumバージョンはブラウザーバージョンをサポートしていません Eclipse vs Mavenから実行した場合、Selenium/browserバージョンが同じであることを再確認してください。 EclipseとMavenが同じSeleniumバージョンを使用するように構成されていることを再確認してください。これは、ブラウザーの自動更新時に発生したため、ブラウザーでオフにしました。

Seleniumテストはヘッドレスモードで実行されています Eclipseと同じマシンで手動でmvnを実行している場合はほとんどありません。これは、JenkinsサーバーでMavenを介してSeleniumを実行しているときに発生しました。 Jenkinsサーバーはヘッドレスモードで実行されていました。頭のないものを理解するのに少し時間をかけました。LinuxなどでDISPLAY環境変数を設定したと思います。

29
Matthew Petty

これを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> 
3
Abhishek_Mishra

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>

この解決策は本当の問題を隠しているだけだろうか?

1
Eric Klumpp

しばらくこれと戦い、ここにリストされているオプションのほとんど(すべてではないにしても)を試した後、未使用のJARを削除することでこのエラーをやっと取り除きました-ios-server-0.6.5-jar-with-dependencies.jarビルドパスで、FF34およびSelenium jar 2.48.2

この衰弱する問題に遭遇した場合に備えて、これを別のオプションとして投稿したかっただけです。

0
rs79

Firefox 36でこの問題が発生しましたが、35と44でも同じ問題に直面していました。

結論として、Firefoxを37にアップグレードするか、33未満にダウングレードします。

0
Tarek Radwan

最新のSeleniumサーバーバージョンを使用してみてください。ブラウザとSeleniumサーバー間の互換性を確認する必要があります。

    <dependency>
    <groupId>org.seleniumhq.Selenium</groupId>
    <artifactId>Selenium-Java</artifactId>
    <version>3.141.59</version>
    </dependency> 
0
jyoti singh
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
0
ABDUL IMRAN

この問題を修正しようとしてFirefoxとSeleniumの両方を最新バージョンに更新し、それでも問題が解決しない場合は、「更新して再起動」を使用してFirefoxを更新した可能性があります。

Firefoxをシャットダウンし、Firefox実行可能ファイルが実行されていないことを確認します。その後、テストしてみてください。これで動作するはずです。

これは、「Restart to Update」を使用してFirefoxバイナリが正確に更新されたときに関連していると推測しています

0
Rajesh J Advani