GeckoDriver
概要
GeckoDriver は、Firefox などの Gecko ベースのブラウザとやり取りするために使用されるスタンドアロンアプリケーションです。Rust で記述されており、Mozilla によって保守されています。
Firefox 48 以降、GeckoDriver は Firefox を自動化するための唯一の方法です。以前 Selenium の一部であったレガシー FirefoxDriver は、もはやサポートされていません。内部的には、HTTP 呼び出しを Firefox に組み込まれた Mozilla の自動化プロトコルである Marionette に変換します。
ダウンロード
GeckoDriver は、GitHub の リリースページ からダウンロードできます。リリースノートもそこにあります。または、プロジェクトの依存関係として geckodriver NPM パッケージを使用することもできます。
npm install geckodriver --save-dev
Selenium 2.x ユーザーはバージョン v0.9 を、Selenium 3 ユーザーは最新バージョンを使用することをお勧めします。
スタンドアロンでの使用
Nightwatch は、ChromeDriver など、他の WebDriver サービスと同様に、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 サーバーを介して 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 は、Firefox 固有の設定値を受け取る firefoxOptions
という機能をサポートしています。詳細は、GeckoDriver の GitHub ページをご覧ください。https://github.com/mozilla/geckodriver#firefox-capabilities.
Firefox プロファイル
firefox プロファイルの指定は、上記のように firefoxOptions
ディクショナリで profile
プロパティを設定することで行うことができます。これは、プロファイルディレクトリの base64 エンコードされた zip ファイルにすることができ、拡張機能やカスタム証明書のインストールに使用できます。
実装状況
GeckoDriver はまだ機能が完全ではなく、WebDriver 標準との完全な準拠または Selenium との完全な互換性がまだ提供されていません。実装状況は、Marionette MDN ページ で追跡できます。