我需要将我的应用程序兼容性升级到Firefox 49(企业策略),所以我需要升级我的测试,以便他们使用FF49(之前的版本是40)。
NB。它是一个便携版本(我不知道是否会改变任何东西)
我尝试使用以下方法设置一个简单的测试:
以下是我的测试代码:
@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牵线木偶之间的联系(对我而言,问题似乎就在那里)。
如果有人有想法,我愿意尝试!
干杯!
答案 0 :(得分:0)
解决方案#1:将你的firefox降级到v46以获得与你的selenium 2.5x版本的最佳匹配或
解决方案#2:使用Selenium 3.0.0(Beta 3)获取最新的firefox