I need to upgrade my application compatibility to Firefox 49 (enterprise policy), so I need to upgrade my tests so that they use FF49 (previous version was 40).
NB. it's a portable version (I don't know if that changes anything)
I tried setting up a simple test using:
- Java
- Selenium 2.53.0 (through fluentlenium 0.13.2, but not relevant here)
- geckodriver 0.9.0 (0.10.0 is only for Selenium 3)
Here is the code of my test:
@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"));
}
The browser starts properly, but then it tries to connect to Marionette with failure in the end.
Adding RUST_LOG=debug;marionette.logging=TRACE
to the environment properties, I have this log:
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
I really don't know how to test further the connection between geckodriver and firefox marionette (for me the problem seems to lie there).
If anybody has an idea, I'm willing to try!
Cheers!