この翻訳は不完全です。英語から この記事を翻訳 してください。
次世代の FirefoxDriver である Marionette は、もうすぐ完成します。 開発状況は ステータスページ で確認することができます。
開発チームが想定していない何かを壊していないことをよく確認してください。以下に導入に必要な手順を掲載します。
Selenium のインストール
Python
Selenium のインストール前に 仮想環境 を作りたい場合は下記を実行してください:
virtualenv env_name source env_name/bin/activate
続いて Selenium 2.46.1 以上のインストールが必要となります。下記を実行してください。
pip install selenium
Ruby
Selenium をインストールする為に、 Ruby Gem が必要となります。
gem install selenium-webdriver
JavaScript (Node.js)
npm install selenium-webdriver
Marionette 実行ファイルの設置
他のブラウザベンダーからリリースされている Selenium 向けのドライバと同様に、 Mozilla がリリースする実行ファイルはブラウザと共に動作します。
ダウンロード
最新の実行ファイルは GitHub リリースページ から入手することができます。
プロジェクト名が GeckoDriver へ変わっても、多くの Selenium クライアントは古い名称のファイルを検索します。バイナリファイルの名前を 'wires' (古い名称) へ変更し、動作することを確認してください。
システムパスへの登録
Selenium クライアントバインドは GeckoDriver 実行ファイルの配置場所をシステムパスから検索します。システムパスへ実行ファイルが格納されているディレクトリを追加してください。
Unix システムでは bash 互換のシェルを使用している場合、下記の手順でシステムの検索パスを追加することができます:
export PATH=$PATH:/path/to/directory/of/executable/downloaded/in/previous/step
Windows では Path システム変数の更新が必要となります。実行ファイルの完全なディレクトリパスを Path システム変数へ登録してください。主要な手順は Unix と同様です。
Marionette を使用するテストの更新
Marionette をテストで使用する為に desired capabilities の更新が必要となります。
Python
from selenium import webdriver from selenium.webdriver.common.desired_capabilities import DesiredCapabilities caps = DesiredCapabilities.FIREFOX # Python バインドへ Marionette を使用することを通知します。 # リモートエンドに何を使用しているのか Selenium が自動検出するようになる為、 # これは将来的には重要ではなくなります。 caps["marionette"] = True # Firefox DevEdition または Nightly のパス。 # Firefox 47 (安定板) は現在サポートしていません。 # # Mac OS ではアプリケーションパッケージ内部のバイナリ実行ファイルを指定します。 # 例 /Applications/FirefoxNightly.app/Contents/MacOS/firefox-bin caps["binary"] = "/usr/bin/firefox" driver = webdriver.Firefox(capabilities=caps)
Ruby
# Ruby バインドへ Marionette の使用を通知します。 # リモートエンドに何を使用しているのか Selenium が自動検出するようになる為、 # これは将来的には重要ではなくなります。 driver = Selenium::WebDriver.for :firefox, marionette: true
JavaScript (Node.js)
const webdriver = require('selenium-webdriver'); const Capabilities = require('selenium-webdriver/lib/capabilities').Capabilities; var capabilities = Capabilities.firefox(); // Node.js バインドへ Marionette の使用を通知します。 // リモートエンドに何を使用しているのか Selenium が自動検出するようになる為、 // これは将来的には重要ではなくなります。 capabilities.set('marionette', true); var driver = new webdriver.Builder().withCapabilities(capabilities).build();
Java
Webdriver driver = new MarionetteDriver();
.NET
var driver = new FirefoxDriver(new FirefoxOptions());
RemoteWebDriver の使用
RemoteWebDriver を各言語で使用する場合は Selenium Grid 内で Marionette を使用します。
Python
caps = DesiredCapabilities.FIREFOX # Python バインドへ Marionette の使用を通知します。 # リモートエンドに何を使用しているのか Selenium が自動検出するようになる為、 # これは将来的には重要ではなくなります。 caps["marionette"] = True driver = webdriver.Firefox(capabilities=caps)
Ruby
# Ruby バインドへ Marionette の使用を通知します。 # リモートエンドに何を使用しているのか Selenium が自動検出するようになる為、 # これは将来的には重要ではなくなります。 caps = Selenium::WebDriver::Remote::Capabilities.firefox marionette: true driver = Selenium::WebDriver.for :firefox, desired_capabilities: caps
Java
DesiredCapabilities capabilities = DesiredCapabilities.firefox();
// Java バインドへ Marionette の使用を通知します。 // リモートエンドに何を使用しているのか Selenium が自動検出するようになる為、 // これは将来的には重要ではなくなります。capabilities.setCapability("marionette", true); WebDriver driver = new RemoteWebDriver(capabilities);
.NET
DesiredCapabilities capabilities = DesiredCapabilities.Firefox();
// Tell the .NET bindings to use Marionette.
// .NET バインドへ Marionette の使用を通知します。
// リモートエンドに何を使用しているのか Selenium が自動検出するようになる為、
// これは将来的には重要ではなくなります。
capabilities.SetCapability("marionette", true);
var driver = new RemoteWebDriver(capabilities);
バグの報告
問題が発生した場合は気軽に Bugzilla へご報告ください。 実装状況の確認は ステータスページ を参照してください。