Firefoxプロファイルサービス
特定の拡張機能を使用してFirefoxブラウザを実行したり、いくつかの設定を行う必要がある場合。Seleniumでは、このプロファイルを`base64`文字列として目的の機能の`moz:firefoxOptions.profile`プロパティに渡すことで、Firefoxブラウザのプロファイルを使用できます。そのためには、そのプロファイルを構築し、`base64`に変換する必要があります。wdioテストランナー のこのサービスは、プロファイルのコンパイル作業を肩代わりし、`wdio.conf.js`ファイルから簡単に目的のオプションを定義できるようにします。
可能なすべてのオプションを見つけるには、Firefoxブラウザでabout:configを開くか、mozillaZineのウェブサイトにアクセスして、各設定に関するドキュメント全体を参照してください。さらに、テスト開始前にインストールするコンパイル済み(`*.xpi`として)Firefox拡張機能を定義することもできます。
インストール
最も簡単な方法は、`@wdio/firefox-profile-service`を`package.json`の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', // path to .xpi file
'/path/to/extensionB' // or path to unpacked Firefox extension
],
'xpinstall.signatures.required': false,
'browser.startup.homepage': 'https://webdriverio.dokyumento.jp',
legacy: true // only use for firefox <= 55
}]
],
// ...
};
ブラウザにインストールするカスタムFirefox拡張機能を構築した場合は、Firefox拡張機能にはMozillaによる署名が必要であるため、プロファイルフラグとして`'xpinstall.signatures.required': false`を設定してください。
署名されていないカスタム拡張機能を使用するには、通常のFirefox 48以降は許可されていませんので、Firefox Developer Editionを使用する必要があります。
オプション
キーと値のペアとしてすべての設定を含みます。利用可能な設定はすべて`about:config`ページにあります。
拡張機能
ブラウザセッションに1つまたは複数の拡張機能を追加します。すべてのエントリは、`.xpi`ファイルへの絶対パス、または展開されたFirefox拡張機能ディレクトリへのパスになります。
型: `String[]`
デフォルト: `[]`
profileDirectory
既存のプロファイルへの絶対パスを設定することで、そのプロファイルに基づいてFirefoxプロファイルを作成します。
型: `String`
デフォルト: `null`
プロキシ
ネットワークプロキシ設定を設定します。パラメータ`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'
}
}]
],
// ...
};
レガシー
Firefox v55以前を使用する場合は、このフラグを`true`に設定してください。
型: `Boolean`
デフォルト: `false`
WebdriverIOの詳細については、ホームページをご覧ください。