Firefox プロファイルサービス
特定の拡張機能を使用してFirefoxブラウザを実行したり、いくつかの設定を行いたいですか?Seleniumでは、このプロファイルをbase64文字列としてmoz:firefoxOptions.profileプロパティに渡すことで、Firefoxブラウザ用のプロファイルを使用できます。これには、そのプロファイルを構築してbase64に変換する必要があります。wdio testrunner用のこのサービスは、プロファイルのコンパイル作業を代行し、wdio.conf.jsファイルから快適 に必要なオプションを定義できるようにします。
すべての可能なオプションを見つけるには、Firefoxブラウザでabout:configを開くか、mozillaZineウェブサイトにアクセスして、各設定に関する完全なドキュメントを確認してください。それに加えて、テスト開始前にインストールされるべきコンパイル済み(*.xpi形式)のFirefox拡張機能を定義することもできます。
インストール
最も簡単な方法は、package.jsonに@wdio/firefox-profile-serviceをdevDependencyとして保持することです:
npm install @wdio/firefox-profile-service --save-dev
WebdriverIOのインストール方法はこちらで確認できます。
設定
サービスリストにfirefox-profileサービスを追加して、プロファイルを設定します。次に、次のようにfirefoxProfileプロパティで設定を定義します:
// wdio.conf.js
export const config = {
// ...
services: [
['firefox-profile', {
extensions: [
'/path/to/extensionA.xpi', // .xpiファイルへのパス
'/path/to/extensionB' // または解凍済みのFirefox拡張機能へのパス
],
'xpinstall.signatures.required': false,
'browser.startup.homepage': 'https://webdriver.io',
legacy: true // firefox 55以下の場合のみ使用
}]
],
// ...
};
ブラウザにインストールするカスタムFirefox拡張機能を構築した場合は、Firefox拡張機能はMozillaによる署名が必要なため、プロファイルフラグとして'xpinstall.signatures.required': falseを設定してください。
カスタムの署名されていない拡張機能を使用するには、Firefox 48以降の通常版では許可されていないため、Firefox Developer Editionを使用する必要があります。
オプション
すべての設定をキーと値のペアとして含みます。すべての利用可能な設定はabout:configページで見つけることができます。
extensions
ブラウザセッションに1つまたは複数の拡張機能を追加します。すべてのエントリは、.xpiファイルへの絶対パスか、解凍済みのFirefox拡張機能ディレクトリへのパスのいずれかです。
タイプ: String[]
デフォルト: []
profileDirectory
既存のプロファイルに基づいてFirefoxプロファイルを作成するには、そのプロファイルへの絶対パスを設定します。
タイプ: String
デフォルト: null
proxy
ネットワークプロキシ設定を設定します。パラメータproxyはハッシュであり、その構造は必須キーproxyTypeの値に依存します。proxyTypeは以下の文字列値のいずれかを取ります:
direct- 直接接続(プロキシなし)system- オペレーティングシステムのプロキシ設定を使用pac-autoconfigUrlキーの値に基づいて設定された自動プロキシ構成を使用manual- 以下のキーからの値を使用して、異なるプロトコルに対して個別に定義された手動プロキシ設定:ftpProxy、httpProxy、sslProxy、socksProxy
タイプ: Object
デフォルト: null
例:
-
自動プロキシ:
// wdio.conf.js
export const config = {
// ...
services: [
['firefox-profile', {
proxy: {
proxyType: 'pac',
autoconfigUrl: 'http://myserver/proxy.pac'
}
}]
],
// ...
}; -
手動HTTPプロキシ:
// wdio.conf.js
export const config = {
// ...
services: [
['firefox-profile', {
proxy: {
proxyType: 'manual',
httpProxy: '127.0.0.1:8080'
}
}]
],
// ...
}; -
手動HTTPおよびHTTPSプロキシ:
// wdio.conf.js
export const config = {
// ...
services: [
['firefox-profile', {
proxy: {
proxyType: 'manual',
httpProxy: '127.0.0.1:8080',
sslProxy: '127.0.0.1:8080'
}
}]
],
// ...
};
legacy
Firefox v55以下を使用している場合は、このフラグをtrueに設定してください。
タイプ: Boolean
デフォルト: false
WebdriverIOの詳細については、ホームページをご覧ください。