下载 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 协议并执行它们。
如何在 Selenium
Gecko 驱动程序可作为可执行文件下载到系统。以下是下载 Gecko 驱动程序的步骤列表。
步骤1 ) 选择适当的版本。
在此页面上 https://github.com/mozilla/geckodriver/releases ,根据您的操作系统选择合适的版本下载GeckoDriver
步骤2) 解压缩 ZIP 文件。
ZIP 文件下载完成后,将 ZIP 文件的内容解压到文件夹中
步骤3) 注意位置。
记下驱动程序的解压位置。稍后将使用位置来实例化驱动程序。
初始化 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 时发生的常见异常及其解决方法的列表。
使用 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 驱动程序。