硒 2.53 在 Firefox 47 上不起作用

我在将Firefox与WebDriver一起使用时遇到错误。

org.openqa.selenium.firefox.NotConnectedException: Unable to connect
to host 127.0.0.1 on port 7055 after 45000 ms.
  • 火狐版本:47.0
  • 硒:2.53.0
  • 视窗 10 64 位

是否有人遇到类似的问题,或者知道解决方案是什么?它与Chrome一起工作正常,但是使用Firefox时,没有加载任何URL。


答案 1

不幸的是,Selenium WebDriver 2.53.0与Firefox 47.0不兼容。处理 Firefox 浏览器 () 的 WebDriver 组件将停止使用。从3.0版本开始,Selenium WebDriver将需要二进制文件来管理Firefox浏览器。更多信息 请点击此处此处FirefoxDrivergeckodriver

因此,为了将 Firefox 47.0 用作 Selenium WebDriver 2.53.0 的浏览器,您需要下载 Firefox 驱动程序(这是一个从版本 0.8.0 开始调用的二进制文件,以前是)并将其绝对路径导出到变量中,作为 Java 代码中的系统属性:geckodriverwireswebdriver.gecko.driver

System.setProperty("webdriver.gecko.driver", "/path/to/geckodriver");

幸运的是,库WebDriverManager可以为您完成这项工作,即为您的计算机(Linux,Mac或Windows)下载正确的木偶二进制文件并导出正确的系统属性的值。要使用此库,您需要将此依赖项包含在项目中:

<dependency>
    <groupId>io.github.bonigarcia</groupId>
    <artifactId>webdrivermanager</artifactId>
    <version>5.1.0</version>
</dependency>

...然后在使用 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
    }
}

考虑到木偶将是未来唯一的选择(对于WebDriver 3 +和Firefox 48 +),但目前(编写时的版本0.9.0)不是很稳定。查看木偶路线图,了解更多详情。

更新

Selenium WebDriver 2.53.1 已于 2016 年 6 月 30 日发布。 再次使用 Firefox 47.0.1 作为浏览器。FirefoxDriver


答案 2

尝试使用火狐 46.0.1。它与硒2.53最匹配

https://ftp.mozilla.org/pub/firefox/releases/46.0.1/win64/en-US/

推荐