GeckoDriver
概述
GeckoDriver 是一个独立应用程序,用于与基于 Gecko 的浏览器(如 Firefox)进行交互。它用 Rust 编写,由 Mozilla 维护。
从 Firefox 48 开始,GeckoDriver 是自动化 Firefox 的唯一方法,以前是 Selenium 的一部分的旧版 FirefoxDriver 不再受支持。在内部,它将 HTTP 调用转换为 Marionette,这是内置于 Firefox 的 Mozilla 自动化协议。
下载
GeckoDriver 可以从 GitHub 的 Releases 页面 下载。发行说明也在这里提供。或者,您也可以使用 geckodriver NPM 包作为您项目中的依赖项
npm install geckodriver --save-dev
Selenium 2.x 用户建议使用版本 v0.9,而 Selenium 3 用户应使用最新版本。
独立使用
Nightwatch 可以像其他 WebDriver 服务(如 ChromeDriver)一样自动管理 GeckoDriver 服务。要直接使用 GeckoDriver,请将以下内容添加到您的 nightwatch.json
中
{
"webdriver": {
"start_process" : true,
"server_path": "./bin/geckodriver-0.23",
"cli_args": [
"--log", "debug"
],
"port": 4444
},
"test_settings" : {
"default" : {
"desiredCapabilities": {
"browserName" : "firefox",
"acceptInsecureCerts": true
}
}
}
}
与 Selenium 服务器一起使用
如果您通过 Selenium Server 使用 GeckoDriver,只需将 cli 参数 "webdriver.gecko.driver"
设置为指向二进制文件的位置。例如:
{
"selenium" : {
"start_process" : true,
"server_path" : "./bin/selenium-server-standalone-3.{VERSION}.jar",
"log_path" : "",
"port" : 4444,
"cli_args" : {
"webdriver.gecko.driver" : "./bin/geckodriver"
}
}
}
GeckoDriver 也可以用作独立应用程序。使用方法步骤在 GitHub 上有说明:https://github.com/mozilla/geckodriver#usage。
命令行使用
$ ./bin/geckodriver-0.23 -help
geckodriver 0.23.0
USAGE:
geckodriver-0.23 [FLAGS] [OPTIONS]
FLAGS:
--connect-existing Connect to an existing Firefox instance
-h, --help Prints help information
--no-e10s Start Firefox without multiprocess support (e10s) enabled
-V, --version Prints version information
-v Set the level of verbosity. Pass once for debug level logging and twice for trace level logging
OPTIONS:
-b, --binary <BINARY> Path to the Firefox binary, if no binary capability provided
--log <LEVEL> Set Gecko log level [values: fatal, error, warn, info, config, debug, trace]
--marionette-port <PORT> Port to use to connect to gecko (default: random free port)
--host <HOST> Host ip to use for WebDriver server (default: 127.0.0.1)
-p, --port <PORT> Port to use for WebDriver server (default: 4444)
Firefox 功能
GeckoDriver 支持一个名为 firefoxOptions
的功能,它接受 Firefox 特定的首选项值。详细信息可在 GeckoDriver GitHub 页面上找到:https://github.com/mozilla/geckodriver#firefox-capabilities。
Firefox 配置文件
通过在上面的 firefoxOptions
字典中设置 profile
属性来指定 firefox 配置文件。这可以是配置文件目录的 base64 编码 zip,它可以用来安装扩展或自定义证书。
实现状态
GeckoDriver 尚未完成功能,这意味着它尚未完全符合 WebDriver 标准或与 Selenium 完全兼容。可以在 Marionette MDN 页面 上跟踪实现状态。