Selenium - 使用带有 Marionette 驱动程序的便携式 Firefox 48

Selenium - Using Portable Firefox 48 with Marionette Driver

如何将 marionetteDriver 与 FF 48 portable 一起使用? 我知道它如何与已安装的 Firefox 48 配合使用:

String marionetteDriverLocation = getClass().getClassLoader().getResource("[PATH_TO_GECKODRIVER]/wires.exe").getPath();
System.setProperty("webdriver.gecko.driver", marionetteDriverLocation);
WebDriver driver = new MarionetteDriver(createDefaultCapabilitiesFirefox());

和 firefox 可移植到 46:

FirefoxBinary binary = new FirefoxBinary(new File(firefoxPortablePath));
WebDriver driver = new FirefoxDriver(binary, createFirefoxProfile(),createDefaultCapabilitiesFirefox());

但如果我想使用便携式 Firefox 48,我该怎么办?

尝试使用与 46 相同的方法。唯一的变化是将 setCapability("marionette", true); 用作 DesiredCapabilities,如下所示:-

String marionetteDriverLocation = getClass().getClassLoader().getResource("[PATH_TO_GECKODRIVER]/wires.exe").getPath();
System.setProperty("webdriver.gecko.driver", marionetteDriverLocation);

DesiredCapabilities capabilities = DesiredCapabilities.firefox();
capabilities.setCapability("marionette", true);

FirefoxBinary binary = new FirefoxBinary(new File(firefoxPortablePath));

WebDriver driver = new FirefoxDriver(binary, createFirefoxProfile(), capabilities);

终于成功了。 gecko 0.8.0 或 0.9.0 没有区别。非常感谢@Saurabh Gaur 你成就了我的一天!

工作代码:

String marionetteDriverLocation = getClass().getClassLoader().getResource("[PATH_TO_GECKODRIVER]//wires.exe").getPath();
System.setProperty("webdriver.gecko.driver",marionetteDriverLocation);
DesiredCapabilities capabilities = createDefaultCapabilitiesFirefox();
capabilities.setCapability("marionette", true);
WebDriver driver = new MarionetteDriver(capabilities);