0

アプリケーションの互換性を Firefox 49 (エンタープライズ ポリシー) にアップグレードする必要があるため、FF49 を使用するようにテストをアップグレードする必要があります (以前のバージョンは 40 でした)。

注意。それはポータブル版です(それが何かを変えるかどうかはわかりません)

以下を使用して簡単なテストを設定しようとしました。

  • ジャワ
  • Selenium 2.53.0 (fluentlenium 0.13.2 まで、ただしここでは関係ありません)
  • geckodriver 0.9.0 (0.10.0 は Selenium 3 専用です)

これが私のテストのコードです:

@Test
public void name() throws Exception {
    System.setProperty(FirefoxDriver.SystemProperty.BROWSER_BINARY, "path\\to\\FirefoxPortable.exe");
    System.setProperty(GeckoDriverService.GECKO_DRIVER_EXE_PROPERTY, "path\\to\\geckodriver.exe");
    final MarionetteDriver driver = new MarionetteDriver();
    driver.navigate().to("http://www.qwant.com");

    Assert.assertTrue("wrong title",
            driver.getTitle().contains("Qwant"));
}

ブラウザは正常に起動しますが、最終的に Marionette に接続しようとして失敗します。

環境プロパティに追加RUST_LOG=debug;marionette.logging=TRACEすると、次のログがあります。

INFO:geckodriver::marionette: Connecting to Marionette on localhost:49888
DEBUG:geckodriver::marionette:   connection attempt 0/600
...
DEBUG:geckodriver::marionette:   connection attempt 600/600
DEBUG:geckodriver::marionette:   connection attempt 601/600
DEBUG:webdriver::server: Returning status InternalServerError
DEBUG:webdriver::server: Returning body {"error":"unknown error","message":"connection refused"}
DEBUG:hyper::server::response: writing head: Http11 InternalServerError
DEBUG:hyper::server::response: headers [
Headers { Content-Length: 56, Connection: close, Date: Wed, 28 Sep 2016 15:12:14 GMT, Content-Type: application/json, }]
DEBUG:hyper::server::response: write 56 bytes
DEBUG:hyper::server: keep_alive = false for 127.0.0.1:49887
DEBUG:hyper::server: keep_alive loop ending for 127.0.0.1:49887

geckodriver と firefox marionette の間の接続をさらにテストする方法が本当にわかりません (私にとって、問題はそこにあるようです)。

思いついた人がいたら挑戦してみます!

乾杯!

4

1 に答える 1

0

解決策 #1: Selenium 2.5x バージョンに最適なバージョンにするために、Firefox を v46 にダウングレードします。

解決策 #2: 最新の Firefox 用に Selenium 3.0.0 (ベータ 3) を使用する

于 2016-09-28T18:54:09.133 に答える