首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Selenium 2.53不能在Firefox 47上运行

Selenium 2.53不能在Firefox 47上运行
EN

Stack Overflow用户
提问于 2016-06-08 12:13:13
回答 15查看 102.2K关注 0票数 108

我在使用火狐和WebDriver的时候遇到了错误。

org.openqa.selenium.firefox.NotConnectedException: Unable to connect
to host 127.0.0.1 on port 7055 after 45000 ms.

  • Firefox version:47.0
  • Selenium:2.53.0
  • Windows 10 64位

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

EN

回答 15

Stack Overflow用户

发布于 2016-06-09 22:22:20

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

因此,为了在Selenium WebDriver 2.53.0中使用Firefox47.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.0.1</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将是未来(对于WebDriver 3+和火狐48+)的唯一选择,但目前(编写时的版本为0.9.0 )不是很稳定。有关更多详细信息,请查看Marionette roadmap

更新

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

票数 93
EN

Stack Overflow用户

发布于 2016-06-08 12:37:26

尝试使用firefox 46.0.1。它与Selenium 2.53最匹配

https://ftp.mozilla.org/pub/firefox/releases/46.0.1/win64/en-US/
票数 18
EN

Stack Overflow用户

发布于 2016-06-09 03:41:10

我也有同样的问题,我发现你需要更换驱动程序,因为support was dropped。为了运行测试,您需要使用Marionette驱动程序,而不是使用Firefox驱动程序。我目前正在通过自己的设置工作,可以发布一些建议的步骤,如果你喜欢,当我有一个工作的例子。

以下是我在Mac上的Java环境中使用它的步骤(在我的Linux安装(Fedora、CentOS和Ubuntu)中也适用):

releases page

  • Unpack
  1. 下载夜间可执行文件并为
  2. 创建一个目录(即,将解压后的可执行文件mkdir -p /opt/marionette)
  3. Move到您创建的
  4. $PATH目录中)更新您的.bash_profile以包含该可执行文件(另外,编辑您的代码如果您确保您的chmod +x /opt/marionette/wires-x.x.x使其成为启动时的可执行文件,请确保您使用以下代码(这是我在Mac上使用的代码)<代码>H221<代码>G222

快速笔记

仍然没有像预期的那样工作,但至少现在启动了浏览器。需要找出原因--现在看起来我需要重写我的测试才能让它正常工作。

Java代码片段

WebDriver browser = new MarionetteDriver();
System.setProperty("webdriver.gecko.driver", "/opt/marionette/wires-0.7.1-OSX");
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37693106

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档