使用Selenium 3.0和Firefox V< 47

时间:2017-02-22 13:44:13

标签: selenium firefox selenium-webdriver geckodriver

Selenium3支持可执行文件geckodriver以便像其他驱动程序一样启动Mozilla Firefox;但可执行文件geckodriverMozilla Firefox < v47不兼容。

那么我们如何实现与浏览器V<47的向后兼容性,我们如何将firefox浏览器V<47Selenium3一起使用。

2 个答案:

答案 0 :(得分:3)

禁用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

因此,如果您要使用<= Firefox 47版本,请使用Firefox driver,而不是geckodriver

  1. 如果是硒2.53,您不需要做任何其他事情(无需设置geckodriver,因为selenium 2.53使用Firefox driver default) 。
  2. 在Selenium 3.0中,我们必须使用geckodriver设置geckodriver路径(因为defaultFirefoxSelenium 3.0的{​​{1}}驱动程序)并将System.setProperty设置为marionette,因此将禁用false功能并使用默认的Firefox驱动程序。
  3. 参考文献:

    1. https://github.com/mozilla/geckodriver#supported-firefoxen
    2. https://github.com/mozilla/geckodriver/issues/224
    3. https://stackoverflow.com/a/40658421/2575259

答案 1 :(得分:0)

你应该使用旧的FirefoxDriver,如果你使用的是RemoteDriver,请确保将牵强木偶设置为false,因为我不确定它是否默认启用(caps.setCapability(FirefoxDriver.MARIONETTE, false);

此驱动程序不需要任何.exe文件,只需import org.openqa.selenium.firefox.FirefoxDriver;代码,因此您可以使用它。

driver = new FirefoxDriver();

或者如果您使用网格:

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