我需要将我的应用程序兼容性升级到 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 之间的连接(对我来说问题似乎就在那里)。
如果有人有想法,我愿意尝试!
干杯!