アプリケーションの互換性を 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 の間の接続をさらにテストする方法が本当にわかりません (私にとって、問題はそこにあるようです)。
思いついた人がいたら挑戦してみます!
乾杯!