不幸的是,Selenium WebDriver 2.53.0与Firefox 47.0不兼容。WebDriver组件,它处理Firefox浏览器(FirefoxDriver)将停止。从3.0版开始,Selenium WebDriver将需要geckodriver二进制文件,用于管理Firefox浏览器。更多信息这里和这里.
因此,为了在Selenium WebDriver 2.53.0中使用Firefox 47.0作为浏览器,您需要下载Firefox驱动程序(它是一个名为geckodriver从0.8.0版到以前的版本wires)并将其绝对路径导出到变量webdriver.gecko.driver作为Java代码中的系统属性:System.setProperty("webdriver.gecko.driver", "/path/to/geckodriver");
幸运的是,图书馆WebDriverManager可以为您完成此工作,即为您的计算机(Linux、Mac或Windows)下载合适的Marionette二进制文件,并导出适当系统属性的值。若要使用此库,需要将此依赖项包含到项目中:
io.github.bonigarcia
webdrivermanager
3.6.1
..然后在使用WebDriver之前在程序中执行这一行:WebDriverManager.firefoxdriver().setup();
使用WebDriver的JUnit 4测试用例的完整运行示例如下:public class FirefoxTest {
protected WebDriver driver;
@BeforeClass
public static void setupClass() {
WebDriverManager.firefoxdriver().setup();
}
@Before
public void setupTest() {
driver = new FirefoxDriver();
}
@After
public void teardown() {
if (driver != null) {
driver.quit();
}
}
@Test
public void test() {
// Your test code here
}}
考虑到Marionette将是未来唯一的选择(WebDriver 3+和Firefox 48+),但目前(编写时版本为0.9.0)并不十分稳定。看一下木偶路线图更多细节。
更新
硒WebDriver2.53.1已经于2016年6月30日发布。FirefoxDriver正在重新使用Firefox47.0.1作为浏览器。