140

テストを実行するボックスがあります。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 で再度ログインします。

  • Selenium テストを実行する前に実行する 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)
4

29 に答える 29

91

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

Selenium と Firefox は相互に通信するのが難しいようです - Firefox は多くのリリースで「進化」するので、後方互換性と前方互換性が常に保証されているわけではなく、非互換性は常に同じエラーを生成するようです。

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

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

Selenium の変更は、古いファイルの代わりに jar ファイルをダウンロードして実行するだけなので、迅速かつ簡単なトラブルシューティングとしてこれを試す価値があります。役に立たない場合は、元に戻すだけです。あなたの場合、どのバージョンの Selenium を試せばよいかわかりませんが、2.24 は FF 10 で動作するはずです。

私が過去に見つけたもう 1 つの問題は、Firefox が Ubuntu で root として実行されないことです。これは、Selenium がサービスとして実行されている場合、または bash スクリプトまたは cron ジョブから起動された場合に発生します。これは、Jenkinsではなく、あなたのために実行される理由を説明するかもしれません.

于 2012-10-24T12:23:40.820 に答える
13

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

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

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

于 2013-05-07T06:26:48.540 に答える
8

FireFox 19 用の最新の Selenium jar (2.30) を入手してください

最新の jar (執筆時点では 2.31) は、https ://code.google.com/p/selenium/downloads/list からダウンロードできます。

于 2013-02-20T21:53:47.517 に答える
6

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

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

于 2013-03-07T19:04:59.067 に答える
5

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

于 2016-06-16T17:00:17.823 に答える
4

Selenium jar を更新し、Selenium 2.31.0 をダウンロードします

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

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

乾杯

于 2013-03-26T14:25:08.620 に答える
3

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

変数を適切に設定するには、Jenkins で設定する必要があります。Manage Jenkins>Manage Nodes>Master>Configureに移動します。[環境変数] チェック ボックスをオンにして、名前ボックスに DISPLAY と入力し、値を :1.0 に設定します。

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

于 2013-07-29T21:28:25.497 に答える
2

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

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

于 2014-04-19T03:31:51.123 に答える
1

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

于 2014-02-27T05:09:22.513 に答える
1

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

于 2016-05-23T09:25:01.993 に答える
1

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

于 2013-03-07T09:17:25.277 に答える
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)

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

于 2016-11-11T11:34:37.780 に答える
0

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

于 2016-10-10T09:20:34.790 に答える
0

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

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("Контакт"));
 }

解決

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

 private static void English()
 {
            var drv = Driver.Instance;
            var el = drv.FindElement(By.Id("mvc_lang_en"));
            el.Click();
 }
于 2014-07-11T10:40:09.103 に答える
0

ターミナルを再起動するだけです。ターミナルは他に何もハングしていません。その後はすべてうまくいく

于 2015-09-26T17:39:27.500 に答える
0

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

于 2014-01-28T04:55:03.490 に答える
0

ナレッジ ベースに追加します。Bamboo でも同じ問題が発生しました。この問題は、Bamboo の環境プロパティを使用することで解決されました。

DISPLAY=":1"

pom.xml またはコマンド ラインにシステム プロパティとして値を追加しても機能しませんでした。

于 2015-11-24T09:39:20.177 に答える
0

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

今では正常に動作しています

于 2014-09-19T11:44:56.660 に答える
0

私もこのエラーで 3 日間立ち往生していましたが、最終的にそれを理解しました。ここで提供した回答を表示できます。これは、ブラウザーとセレン サーバーの互換性の問題です。このリンクからブラウザーの互換性を確認できます。

于 2016-11-30T05:09:57.203 に答える
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> 
于 2017-05-15T08:34:39.587 に答える
-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 のバージョンを確認してインストールする

参照 -更新された selenium libs & jar ie Version 2.45.0をダウンロード

これはあなたの問題を解決します..乾杯!!

于 2015-11-01T12:50:02.483 に答える