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:将您的 Firefox 降级到 v46,以便与您的 selenium 2.5x 版本进行最佳匹配或

解决方案 #2:使用 Selenium 3.0.0(Beta 3) 获取最新的 firefox

于 2016-09-28T18:54:09.133 回答