为了账号安全,请及时绑定邮箱和手机立即绑定

Selenium 2.53不使用Firefox 47

Selenium 2.53不使用Firefox 47

一只斗牛犬 2019-12-19 12:13:56
Selenium 2.53不使用Firefox 47我在WebDriver中使用Firefox时出错了。org.openqa.selenium.firefox.NotConnectedException: Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms.Firefox版本:47.0硒:2.53.0Windows 10 64位有没有人得到类似的问题,或者知道解决这个问题的方法是什么?它在Chrome上运行得很好,但是对于Firefox,没有一个URL会被加载。
查看完整描述

3 回答

?
SMILET

TA贡献1796条经验 获得超4个赞

不幸的是,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二进制文件,并导出适当系统属性的值。若要使用此库,需要将此依赖项包含到项目中:

<dependency>
    <groupId>io.github.bonigarcia</groupId>
    <artifactId>webdrivermanager</artifactId>
    <version>3.6.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+和Firefox 48+),但目前(编写时版本为0.9.0)并不十分稳定。看一下木偶路线图更多细节。

更新

硒WebDriver2.53.1已经于2016年6月30日发布。FirefoxDriver正在重新使用Firefox47.0.1作为浏览器。



查看完整回答
反对 回复 2019-12-20
?
长风秋雁

TA贡献1757条经验 获得超7个赞

我也有同样的问题,发现你需要更换驱动程序,因为放弃支持..而不是使用Firefox驱动程序,您需要使用木偶为了运行你的测试。我目前正在通过设置我自己,并可以张贴一些建议的步骤,如果你想当我有一个工作的例子。

下面是我在Mac上运行Java环境所遵循的步骤(在我的Linux安装(Fedora、CentOS和Ubuntu)中也为我工作):

  1. 发布页面

  2. 解压档案
  3. 为Marionette创建一个目录(即,

    mkdir -p /opt/marionette)

  4. 将解压缩的可执行文件移动到您创建的目录中。
  5. 更新您的

    $PATH

    若要包含可执行文件(同时,请编辑

    .bash_profile

    如果你愿意的话)
  6. :邦邦:确保你

    chmod +x /opt/marionette/wires-x.x.x

    所以它是可执行的
  7. 在启动过程中,请确保使用以下代码(这是我在Mac上使用的代码)

速记

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

Java片段

WebDriver browser = new MarionetteDriver();System.setProperty("webdriver.gecko.driver", "/opt/marionette/wires-0.7.1-OSX");



查看完整回答
反对 回复 2019-12-20
  • 3 回答
  • 0 关注
  • 239 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信