下载 Geckodriver:如何安装 Firefox 驱动程序 Selenium

GeckoDriver 是什么 Selenium?

Gecko 代表 Mozilla 内置的 Web 浏览器引擎 Firefox 浏览器。Gecko 驱动程序充当启用 Web 驱动程序的客户端之间的代理(Eclipse、Netbeans 等)和 Mozilla Firefox 浏览器。简而言之,Gecko 驱动程序充当 Selenium Web 驱动程序测试和 Mozilla Firefox 浏览器。

申请早于 Selenium 3、Mozilla Firefox 浏览器是 Selenium。 后 Selenium 3、测试人员需要初始化脚本才能使用 Firefox 明确使用 GeckoDriver。 Selenium 使用 W3C Webdriver 协议向 GeckoDriver 发送请求,后者将其转换为名为 Mari單身詞。 Firefox 将理解以以下形式传输的命令 Marionette 协议并执行它们。

GeckoDriver 中 Selenium

如何在 Selenium

Gecko 驱动程序可作为可执行文件下载到系统。以下是下载 Gecko 驱动程序的步骤列表。

步骤1 ) 选择适当的版本。
在此页面上 https://github.com/mozilla/geckodriver/releases ,根据您的操作系统选择合适的版本下载GeckoDriver

下载并安装 GeckoDriver Selenium

步骤2) 解压缩 ZIP 文件。
ZIP 文件下载完成后,将 ZIP 文件的内容解压到文件夹中

下载并安装 GeckoDriver Selenium

步骤3) 注意位置。
记下驱动程序的解压位置。稍后将使用位置来实例化驱动程序。

下载并安装 GeckoDriver Selenium

初始化 GeckoDriver 的方法

有三种不同的方法来初始化 GeckoDriver。

1. 使用 DesiredCapabilities

首先,设置 Gecko Driver 的系统属性。

语法:

System.setProperty("webdriver.gecko.driver","Path to geckdriver.exe file");

示例:

System.setProperty("webdriver.gecko.driver","D:\\Downloads\\GeckoDriver.exe");

接下来,设置所需功能。

所需能力帮助 Selenium 了解浏览器名称、版本和操作系统以执行自动化测试。以下是使用 DesiredCapabilities 类设置 gecko 驱动程序的代码。

DesiredCapabilities capabilities = DesiredCapabilities.firefox();
capabilities.setCapability("marionette",true);

以下是完整的代码

System.setProperty("webdriver.gecko.driver", driverPath);
DesiredCapabilities capabilities = DesiredCapabilities.firefox();
capabilities.setCapability("marionette",true);
driver= new FirefoxDriver(capabilities);

2. 使用木偶属性

Gecko 驱动程序也可以使用 marionette 属性进行初始化,如下所示

System.setProperty("webdriver.gecko.driver","D:\\Downloads\\GeckoDriver.exe");

如果使用上述方法初始化 Gecko 驱动程序,则所需功能的代码为 而不去 必需的。

3。 运用 Firefox附加选项

Mozilla的 Firefox 版本 47+ 已将 Marionette 驱动程序作为遗留系统。利用这一点,可以使用以下方式调用 Marionette 驱动程序 Firefox 选项如下

FirefoxOptions options = new FirefoxOptions();
options.setLegacy(true);

使用 Gecko 驱动程序启动 Firefox 的代码

package com.guru99.demo;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.remote.DesiredCapabilities;

public class GeckoDriverDemo {

    String driverPath = "D:\\Guru99Demo\\GeckoDriver.exe";
    public WebDriver driver;

    @Before
    public void startBrowser() {
        System.setProperty("webdriver.gecko.driver", driverPath);
        DesiredCapabilities capabilities = DesiredCapabilities.firefox();
        capabilities.setCapability("marionette", true);
        driver = new FirefoxDriver(capabilities);

    }

    @Test
    public void navigateToUrl() {
        driver.get("http://demo.guru99.com/selenium/guru99home/");
    }

    @After
    public void endTest() {
        driver.quit();
    }

}

代码说明

@Before 方法

首先,我们需要将 gecko driver 的系统属性设置为 geckdriver.exe 文件下载位置。我们需要将 marionette 属性设置为 true Selenium 使用 Marionette 协议与 Gecko Driver 通信。最后,我们需要启动 Firefox 浏览器实例使用该对象实现所需的功能。

以下陈述有助于完成上述任务。

System.setProperty("webdriver.gecko.driver", driverPath);
DesiredCapabilities capabilities = DesiredCapabilities.firefox();
capabilities.setCapability("marionette",true);
driver= new FirefoxDriver(capabilities);

@测试方法

我们使用内置的“get”方法导航到用户指定的 URL Selenium web 驱动程序。下面的语句有助于实现相同的目的。

driver.get("http://demo.guru99.com/selenium/guru99home/");

@After 方法

最后,我们使用 quit 方法关闭浏览器实例。

driver.quit();

修改非 Gecko 脚本为 Gecko

之前使用过的非 gecko 驱动脚本 Selenium 3 很简单。我们需要创建一个 Firefox 驱动程序并使用实例变量。

@Before
public void startBrowser() {
    driver = new FirefoxDriver();

}

要转换为 gecko,您只需添加一行代码

    @Before
    public void startBrowser() {
        System.setProperty("webdriver.gecko.driver", "D:\\Downloads\\GeckoDriver.exe");
        driver = new FirefoxDriver();

    }

使用 Gecko Driver 时发生的常见异常

以下是使用 Gecko Driver 时发生的常见异常及其解决方法的列表。

当用户尝试实例化时会发生此异常 Firefox 驱动程序,而无需为 gecko 驱动程序设置系统属性。这通常是由初学者完成的,以 Selenium 不知道所做的更改 Selenium 要3 Selenium 之前的版本。

解决上述异常的方法是使用 geckodriver.exe 文件的位置设置 gecko 驱动程序的系统属性,如下所示

System.setProperty("webdriver.gecko.driver", "D:\\Downloads\\geckodriver.exe");

请注意,您需要在创建 Mozilla 实例之前设置 gecko 驱动程序的属性 Firefox 驱动程序。

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

此异常通常发生在 Firefox 版本已升级到最新版本。此异常的解决方法是将 selenium jar 文件和 gecko 驱动程序更新到最新版本并使用相同的版本。

org.openqa.selenium.SessionNotCreatedException: Unable to create new remote session.

发生此异常是由于 Selenium 和 Gecko 驱动程序。Gecko 驱动程序可与 Firefox 版本 47 或更高版本。可以通过更新来解决 Firefox 版本至47或以上。

WebDriver Exception: Connection Refused

此异常是当 Web 驱动程序无法与 Firefox可以使用下列任何一种技术来解决。

  • 使用 VHDL 语言编写 driver.quit() 销毁 Web 驱动程序早期实例的方法
  • 在执行自动化测试之前清理浏览器缓存
  • 清理项目工作区 Eclipse IDE
  • 始终使用最新版本的 selenium gecko 驱动程序和最新版本的 Firefox 浏览器

使用 Gecko Driver 的优势

Selenium Webdriver 版本 2.53 与 Mozilla 不兼容 Firefox 版本 47.0+。 Firefox 早期版本的 Mozilla 中使用的驱动程序 Firefox 将停止使用,并且只会使用 GeckoDriver 实现。因此,如果测试人员想在 Mozilla 上运行自动化测试,他们就必须使用 GeckoDriver Firefox 版本 47.0+。但最大的问题是——优势是什么?

与默认设置相比,使用 GeckoDriver 的主要优势 Firefox 司机是 兼容性. GeckoDriver 使用 W3C WebDriver 协议 沟通 Selenium。W3C 是 Web 驱动程序的通用标准。这意味着 Selenium 开发人员(编写代码的人 Selenium 基于 GeckoDriver 的早期实现不需要为每个浏览器版本创建新版本的 Web Driver。同一个 Web Driver 可以用于多个浏览器版本。因此,与早期的实现相比,GeckoDriver 更受欢迎。 Firefox 驱动程序。