gpt4 book ai didi

java - Selenium 2.53 不适用于 Firefox 47

转载 作者:IT老高 更新时间:2023-10-28 11:22:46 25 4
gpt4 key购买 nike

我在使用带有 WebDriver 的 Firefox 时遇到错误。

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

有没有人遇到类似的问题或知道解决方案是什么?它在 Chrome 上运行良好,但在 Firefox 上没有加载任何 URL。

最佳答案

很遗憾,Selenium WebDriver 2.53.0 与 Firefox 47.0 不兼容。处理 Firefox 浏览器 (FirefoxDriver) 的 WebDriver 组件将停止使用。从 3.0 版开始,Selenium WebDriver 将需要 geckodriver 二进制文件来管理 Firefox 浏览器。更多信息 herehere .

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

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

幸运的是,图书馆 WebDriverManager可以为您完成这项工作,即为您的机器(Linux、Mac 或 Windows)下载正确的 Marionette 二进制文件并导出正确系统属性的值。要使用这个库,你需要在你的项目中包含这个依赖:

<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
}
}

考虑到 Marionette 将是 future 的唯一选择(适用于 WebDriver 3+ 和 Firefox 48+),但目前(编写时为 0.9.0 版)不是很稳定。看看Marionette roadmap了解更多详情。

更新

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

关于java - Selenium 2.53 不适用于 Firefox 47,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37693106/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com