使用FF49和Selenium 2.53.0设置简单测试

时间:2016-09-28 15:33:59

标签: java selenium firefox-marionette geckodriver

我需要将我的应用程序兼容性升级到Firefox 49(企业策略),所以我需要升级我的测试,以便他们使用FF49(之前的版本是40)。

NB。它是一个便携版本(我不知道是否会改变任何东西)

我尝试使用以下方法设置一个简单的测试:

  • 爪哇
  • 硒2.53.0(通过fluent 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牵线木偶之间的联系(对我而言,问题似乎就在那里)。

如果有人有想法,我愿意尝试!

干杯!

1 个答案:

答案 0 :(得分:0)

解决方案#1:将你的firefox降级到v46以获得与你的selenium 2.5x版本的最佳匹配或

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