45000ミリ秒後にWebdriverがポート7055のホスト127.0.0.1に接続できない


138

テストを実行するボックスがあります。Jenkinsがsshを実行し、実行中の特定のジョブに記述されているコマンドを実行するようです。

ここでは、Selenium Webdriverテストを実行しようとしていますが、Firefoxの起動でエラーが発生したことがわかります。最終的なアイデアは、このボックスでWebテストを完全に実行し、エラーのスクリーンショットを撮ることです。

私はselenium-java-2.25.jar、firefox 10、linux OSを使用しています。

おもしろいのは、手動でボックスにSSHでログインし、ボックスの別のユーザーからマジッククッキーを一時的にコピーして(Xトンネルを取得する)、を実行してからexport DISPLAY=mydisplay:1.0、antを使用してセレンテストを起動することです。これにより、Firefoxとテストが正常に起動します。

まったく同じ問題があるように見えるさまざまなスレッドがここにあり、私はそれらのほとんどを試したと思います。これが私がやったことです:

  • ボックスを再起動し、VNCで再度ログインします。

  • Jenkinsにbashスクリプトを配置して、セレンテストを実行する前に実行しました。bashスクリプトは基本的にexport DISPLAY=mydisplay:1.0。それも実行しxclockます。これは、VNCにxclockが表示されているのを確認できるので機能します。

  • iptablesがオフになりました

  • firefoxは/ usr / bin / firefoxに正しく配置されています

  • sshd_configは、X11Forwardingがtrueであることを示しています。

  • おそらくFirefoxを格下げすることは一部の人々を助けましたが、私はこれをしたくありません。WebdriverはとにかくFF 10をサポートする必要があります。

ただし、上記のいずれも問題を解決しません。

localhostのポート7055が存在するようにも見えません。

netstat -an | grep 7055 -何も印刷されない

これは私の/ etc / hostsが言うことです:

  1 127.0.0.1               localhost.localdomain localhost
  2 ::1             localhost6.localdomain6 localhost6

多分それは存在しないlocalhost:7055と関係があるのでしょうか?ここからどこへ行くかわかりません。それでも、display: :0.0指定したときにエラー出力が探していると言うのはなぜmydisplay:1.0ですか?

そして最後に、私が受け取るエラー出力:

[testng] org.openqa.selenium.firefox.NotConnectedException: Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms. Firefox console output:
[testng] Xlib: connection to ":0.0" refused by server
[testng] Xlib: No protocol specified
[testng] 
[testng] Error: cannot open display: :0.0
[testng] Xlib: connection to ":0.0" refused by server
[testng] Xlib: No protocol specified
[testng] 
[testng] Xlib: connection to ":0.0" refused by server
[testng] Xlib: No protocol specified
[testng] 
[testng] Xlib: connection to ":0.0" refused by server
[testng] Xlib: No protocol specified
[testng] 
[testng] Error: cannot open display: :0.0
[testng] 
[testng]    at org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.start(NewProfileExtensionConnection.java:109)
[testng]    at org.openqa.selenium.firefox.FirefoxDriver.startClient(FirefoxDriver.java:245)
[testng]    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:109)
[testng]    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:185)
[testng]    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:178)
[testng]    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:174)
[testng]    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:92)
[testng]    at com.test.webtest.browser.BrowserFactory.createBrowser(BrowserFactory.java:24)
[testng]    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[testng]    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
[testng]    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[testng]    at java.lang.reflect.Method.invoke(Method.java:601)

私はこの問題をセレン2.31.0で再現しました
Dima Star

Selenium 2.47.1でこの問題が発生し、FirefoxドライバーサーバーがポートXXXXで起動したというメッセージが表示されません。代わりに、テストからのワイヤープロトコルコマンドをリッスンするためにポートが開かなかったと想定して、開いている空白のウィンドウが表示され、ブラウザーを制御できません。
djangofan 2015

Seleniumサーバー2.47.1とFirefox 40の組み合わせは問題ないようですが、Firefox 41では機能しません。
Rostislav Matl

ボックスにGUIがなく、Firefoxを使用してボックスでテストを実行している場合、このエラーが発生します。メモリディスプレイドライバーでXvfbを試すことをお勧めします。または、Firefoxのバージョンとセレンのバージョンの互換性の問題である可能性もあります。
Prasanta Biswas

回答:


91

この問題を解決したかどうかはわかりませんが、私は反対側から同じ問題を解決しました。

SeleniumとFirefoxは互いに話すのが難しいようです-私は、Firefoxがいくつかのリリースで「進化」する変更を行っているのではないかと思います。

私の問題は、FF 15からFF 16に移行したときに始まりました。Ubuntuで実行すると、これは他のアップグレードと一緒に魔法のように自動で行われますが、これは重要な変更だったと思います。

この問題は、Selenium 2.24.1からSelenium 2.25.0に移行することで解決しました

セレンの変更はjarファイルをダウンロードして古いファイルの代わりに実行するだけなので、すばやく簡単なトラブルシューティングとして試してみる価値があります。それでも問題が解決しない場合は、元に戻してください。あなたの場合、どのバージョンのSeleniumを試すかはわかりませんが、FF 10では2.24が機能するはずです。

私が過去に見つけた別の問題は、FirefoxがUbuntuでrootとして実行されないことです。これは、Seleniumがサービスとして実行されている場合、または場合によってはbashスクリプトまたはcronジョブから起動された場合に発生します。これは、Jenkinsではなく、なぜ実行されるのかを説明している可能性があります。


2
UbuntuでFF 19.0とselenium-server-standalone-2.29.0.jarを使用しています。Jenkinsでセレンテストを実行すると、同じエラーが発生しました:org.openqa.selenium.firefox.NotConnectedException:45000ミリ秒後にポート7055でホスト127.0.0.1に接続できません。Firefoxコンソールの出力:[testng]エラー:ディスプレイが指定されていません[testng]エラー:ディスプレイが指定されていません
Ripon Al Wasim

@RiponAlWasim問題を解決できる運はありますか?2.31.0を実行していますが、同じ問題があります。
Petr Peller、2013年

@Petr Peller:FFのバージョンは何ですか?
Ripon Al Wasim 2013年

1
これは継続的な問題のようです。Selenium Webdriver 2.47とFirefox 44でこのエラーが発生しました。SeleniumWebdriverを2.53に更新すると修正されました。
Bセブン

1
TL; DR -アップグレードセレン(ここでは.jarファイル- selenium-release.storage.googleapis.com/index.html
rinogo

14

同様の問題がありました。多分この答えはあなたにも役立つでしょう。

2つの異なるエラーが発生しているようです:

  1. Unable to connect to host 127.0.0.1 on port 7055
  2. Error: no display specified

Unable to connectエラーの理由は、Selenium Serverのバージョンが、Firefoxの新しいバージョンと連携する方法を認識していないためです。Firefoxの新しいバージョンをサポートするSelenium Serverの新しいバージョンをダウンロードする必要があります。

Error: no display specifiedエラーの理由は、Firefoxが起動されているが、リモートホストで実行されているXサーバー(GUI)がないためです。X11転送を使用して、リモートホスト上でFirefoxを実行できますが、ローカルホスト上に表示できます。Mac OS Xでは、X11転送を使用するためにXQuartzをダウンロードする必要があります。


13

Seleniumでのテストを選択する前に、ブラウザーの互換性を確認する必要があります。

https://github.com/SeleniumHQ/selenium/blob/master/java/CHANGELOG

これは上記の質問に答えるのに役立つかもしれません。


これは私が遭遇した問題でした。そしてそれは私の場合ブラウザではありませんでした。それは基盤となるOSでした。Mac OS X-Yosemiteを使用しています。そして、最新のセレンだけが動作しているようです。
Ajit S

2
リンクが壊れ先生です
御堂


6

私は、Firefoxを以前にSelenium-WebDriverで正常に機能していた古いバージョンにダウングレードすることで、この問題を解決しました。私の場合、Firefox 18にダウングレードする必要があり、このバージョンはSelenium 2.27で動作しました

古いバージョンのfirefoxを入手するためのリンクは次のとおりです。https//ftp.mozilla.org/pub/mozilla.org/firefox/releases/


5

この問題は長い間私を悩ませてきました。Firefoxの場合の1つの有効な解決策は、アップグレードされたfirefoxドライバー使用することでした。

  • Firefoxのアップグレードが自動的に行われている場合は、たまにこの問題に直面する可能性があります。Firefoxの開発速度が速すぎるか、下位互換性を気にしていません。

  • 古いスクリプトでこの問題が発生するたびに、Firefoxのバージョンが変更されているかどうかを確認します。ほとんどの場合、変更されています。

  • 次に、セレンのFirefoxドライバーリポジトリのMavenリポジトリに移動します-http ://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-firefox-driverと最新バージョンをダウンロードします。

  • または私のpom.xml(mavenを使用している場合)を今すぐFirefoxドライバーの新しいバージョンで更新します-2.40.0

  • Firefoxからの自動化された更新を本当に明示的にブロックしない限り、この問題を簡単に回避する方法はありません(これは(Macの場合)環境設定-詳細-更新-[更新を確認しますが、インストールするかどうかを選択させます]を選択して実行できます) )

  • スクリプトが自動モードで実行されている場合は、更新を無効にすることができます。ただし、これにより他の問題が発生する可能性があります。ほとんどの人/ユーザーは、Firefoxの更新をデフォルトで有効にしている可能性があるためです。したがって、アプリケーションはそれ以降のバージョンでは実際にテストされていません。


5

Firefox 47Selenium 2.53を使用していて、同じエラーが発生しました。私の解決策はFirefox 47をFirefox 46に変更することでしたが、問題は解決しました。


4

セレンのjarを更新し、セレン2.31.0をダウンロード

この問題はセレン族によって解決されました

これは互換性の問題でした。

乾杯


3

スクリプトの問題は、スクリプトに使用される環境がテストに使用される環境と同じではないため、環境変数を設定してもテストには何も影響しないことです。

変数を正しく設定するには、Jenkinsで変数を設定する必要があります。移動ノード>マスター>設定>のジェンキンスを管理する管理。[ 環境変数]チェックボックスをオンにして、名前ボックスにDISPLAYと入力し、値を:1.0に設定します。

さらに、権限を設定する必要がありますxhost +。ターミナルでを使用してxhostアクセス制御を無効にしてみてください。


1
その「xhost +」は私の問題を修正しました。それは、sudoでwebdriverを実行してもブラウザーが開かないことでした-これで動作します。
Nick Perkins

2

私も同じ問題に直面しました。私たちまたはWebドライバーが開くたびに、FFブラウザーは更新があるかどうかをチェックします。その場合、実行時に更新を試みますが、Seleniumのバージョンを適切に更新していないために、正しく更新されていてもエラーが発生します。

http://docs.seleniumhq.org/download/」に移動して、最新バージョンをダウンロードします。さあ、行って確認すれば、問題は確かに解決されます。:)


1

同じエラーが発生しました。私はselenium-javaバージョン2.25.0とFirefox vresion 18.0.2を使用しました。私はselenium-javaのバージョンを2.30.0に変更し、動作します。



1

JenkinsにXvncプラグインをインストールするだけです。問題は解決されるべきです。


1

同じエラーが発生しました「selenium_Unable to connect to host 127.0.0.1 on port 7055」解決策:Firefoxバージョン43.0.1でselenium-java-2.48.2を使用しましたが、正常に機能しています。


1

私にも同じ問題がありましたが、Firefoxのバージョンを35.0.1にダウングレードすると問題が解決し、セレンのバージョンは2.43です


1

Dockerの実行とまったく同じ問題がありましたが、あなたが言及したエラーの前のログに解決策が見つかりました。

selenium_1  | 2016-11-11 11:19:34,498 DEBG 'xvfb' stderr output:
selenium_1  | (EE)
selenium_1  | Fatal server error:
selenium_1  | (EE) Server is already active for display 99
selenium_1  |   If this server is no longer running, remove /tmp/.X99-lock
selenium_1  |   and start again.
selenium_1  | (EE)

私はアドバイスに従いましたが、問題は解決されました。


0

これは、IWebDriverの静的プロパティを使用して複数のテストメソッドから呼び出した場合の動作です。

public class LanguageMenu
{
    private static IWebDriver drv;

    static LanguageMenu()
    {
       drv = Driver.Instance;
    }
    ...

    public static void English()
    {
        drv.FindElement(By.Id("mvc_lang_en"));
        el.Click();
    }

    public static void Rusian()
    {
        ...
    }

    ...
}

お気に入り

 [TestMethod]
 public void Language_SwitchTo_English()
 {
     LanguageMenu.English();
     Assert.IsTrue(ContactPage.IsAt("Contact"));
 }

 [TestMethod]
 public void Language_SwitchTo_Rusian()
 {
     LanguageMenu.English();
     Assert.IsTrue(ContactPage.IsAt("Контакт"));
 }

解決

テストメソッドを呼び出すたびに、ドライバーの新しいインスタンスを作成します。

 private static void English()
 {
            var drv = Driver.Instance;
            var el = drv.FindElement(By.Id("mvc_lang_en"));
            el.Click();
 }

0

セレンスクリプトが実行されていない場合は、セレンjarを更新します。現在私はselenium-java-2.43.0-srcsを使用しています

今ではうまくいきます


0

これは、ffの異なるバージョンで発生します。同じエラーを示すselenium-server-standalone-2.41.0.jarとselenium-java-2.41.0.zipを使用して、最新のffバージョン39を使用しています。

サーバーとクライアントのバージョン2.47.0と2.47.1をそれぞれ使用した互換性については、ここで最新のサーバーとクライアントのjarファイルを入手してください。そしてブーム!出来た。


0

これは古いバージョンが原因で発生します。ブラウザを最新バージョンに更新し、Selenium Webdriverパッケージを最新バージョンに更新するだけです。


0

ターミナルを再起動するだけです。ターミナルは他に何も吊り下げられていません。その後はすべてうまくいきます


0

知識ベースに追加します。Bambooでも同じ問題がありました。この問題は、Bambooの環境プロパティを使用することで解決されました。

DISPLAY=":1"

pom.xmlのシステムプロパティとして値を追加するか、コマンドラインが機能しませんでした。


0

Windowsの場合:Firefoxの「ビット数」も確認してください。Firefox 43.0.1 64ビットはSelenium 2.50.0では機能しません。Firefox 43.0.1 32ビットでの動作...


0

私も3日間このエラーに悩まされ、ついにそれを理解しましここで私が与えた答えを見ることができます。これはブラウザとセレンサーバーの互換性の問題です。これが役に立てば幸いです。このリンクからブラウザの互換性を確認できます


0

今日も同じ問題がありました。修正するには、Firefoxバージョン51を47にダウングレードしました。

注:私は仮想ボックスでLinux Ubuntu Mateを使用しています。ホストは別のUbuntu Mateです。すべてのOSは64ビットで、Firefoxも使用できます。



0

Firefox 38でも同じ問題が発生しました。

次のバージョンの依存関係を使用した後、問題を解決できました。

    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>2.53.0</version>
    </dependency>

    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-firefox-driver</artifactId>
        <version>2.53.0</version>
    </dependency> 

0

これは表示の問題かもしれないと思います。ボックスにGUIがない場合、selenium webdriverからfirefoxを起動すると、このエラーが発生します。

これを解決するには、最初にXvfb [ yum install Xvfb -y](仮想ディスプレイドライバー)をボックスにインストールします。次に、を使用してジェンキンスからテストを実行しますxvfv-run -a -d <your test execution command>。これにより、仮想ディスプレイバッファーでブラウザーが起動します。また、セレンWebドライバーを使用してスクリーンショットを取得することもできます。


-1

解決 -

1)Selenium Serverをアップグレードします。つまり、selenium jar "selenium-server-standalone-2.xx.x.JAR"を"selenium-server-standalone-2.45.0.JAR"にアップグレードします

2)Seleniumクライアントドライバー、つまりselenium libsフォルダー「selenium-java-2.xx.x」を「selenium-java-2.45.0」にアップグレードします

3)互換性のあるFirefoxのバージョンを確認してインストールします

参照- 更新されたセレンライブラリとjar、つまりバージョン2.45.0をダウンロード

これはあなたの問題を解決します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.