Selenium 3.0与Firefox V<;47

Selenium 3.0与Firefox V<;47,selenium,firefox,selenium-webdriver,geckodriver,Selenium,Firefox,Selenium Webdriver,Geckodriver,Selenium3与其他驱动程序一样,支持可执行geckodriver启动Mozilla Firefox;但是可执行的geckodriver与Mozilla Firefox47和ff的相同代码,您可以使用“getVersion”方法。因此,添加if-else块来完成任务。这里的更多细节我正试图迁移到Selenium 3.X,但geckodriver是主要的障碍。现在我知道该怎么处理了。你的解决办法救了我一天。谢谢

Selenium3
与其他驱动程序一样,支持可执行
geckodriver
启动
Mozilla Firefox
;但是可执行的
geckodriver
Mozilla Firefox
不兼容


那么,我们如何实现与浏览器的向后兼容性呢?您应该使用旧的
FirefoxDriver
,如果您使用RemoteDriver,请确保将marionette设置为false,因为我不确定它是否默认启用(
caps.setCapability(FirefoxDriver.marionette,false);

此驱动程序不需要任何
.exe
文件,只需导入org.openqa.selenium.firefox.FirefoxDriver在您的代码中,以便您可以使用它

driver = new FirefoxDriver();
或者,如果您正在使用网格:

driver = RemoteWebDriver(url, DesiredCapabilities.firefox());

禁用
geckodriver
功能,以便可以使用
FirefoxDriver

System.setProperty("webdriver.gecko.driver", "path/to/geckodriver.exe");
DesiredCapabilities d = new DesiredCapabilities();
d.setCapability("marionette", false);  // to disable marionette, by default true
WebDriver driver = new FirefoxDriver(d);

geckodriver.exe和Firefox版本支持的小背景:

geckodriver
github页面:

Firefox 47 is explicitly not supported

所以,如果您想使用
我们在代码中是否有某种灵活性,比如ff v>47和ff的相同代码,您可以使用“getVersion”方法。因此,添加if-else块来完成任务。这里的更多细节我正试图迁移到Selenium 3.X,但geckodriver是主要的障碍。现在我知道该怎么处理了。你的解决办法救了我一天。谢谢