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是主要的障碍。现在我知道该怎么处理了。你的解决办法救了我一天。谢谢