本文へ移動

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の詳細については、ホームページをご覧ください。

ようこそ!お手伝いできることはありますか?

WebdriverIO AI Copilot