本文へスキップ

機能

機能とは、リモートインターフェースの定義です。WebdriverIO が、テストを実行するブラウザまたはモバイル環境を理解するのに役立ちます。ローカルでテストを開発する場合、ほとんどの場合、1つのリモートインターフェースで実行するため、機能はそれほど重要ではありませんが、CI/CD で大規模な統合テストを実行する際には、より重要になります。

情報

機能オブジェクトの形式は、WebDriver 仕様で明確に定義されています。WebdriverIO テストランナーは、ユーザー定義の機能がその仕様に準拠していない場合、早期に失敗します。

カスタム機能

定義済みの固定機能の数は非常に少ないですが、自動化ドライバまたはリモートインターフェースに固有のカスタム機能を提供および受け入れることができます。

ブラウザ固有の機能拡張

  • goog:chromeOptions: Chromedriver 拡張機能。Chrome でのテストにのみ適用されます。
  • moz:firefoxOptions: Geckodriver 拡張機能。Firefox でのテストにのみ適用されます。
  • ms:edgeOptions: Chromium Edge のテストに EdgeDriver を使用する場合の環境を指定するための EdgeOptions

クラウドベンダー機能拡張

自動化エンジン機能拡張

ブラウザドライバオプションを管理するための WebdriverIO 機能

WebdriverIO は、ブラウザドライバのインストールと実行を管理します。WebdriverIO は、ドライバにパラメータを渡すことができるカスタム機能を使用します。

wdio:chromedriverOptions

起動時に Chromedriver に渡される特定のオプション。

wdio:geckodriverOptions

起動時に Geckodriver に渡される特定のオプション。

wdio:edgedriverOptions

起動時に Edgedriver に渡される特定のオプション。

wdio:safaridriverOptions

起動時に Safari に渡される特定のオプション。

wdio:maxInstances

特定のブラウザ/機能に対する合計並列実行ワーカーの最大数。 maxInstancesmaxInstancesPerCapability より優先されます。

型: number

wdio:specs

そのブラウザ/機能のテスト実行の仕様を定義します。通常の specs 設定オプション と同じですが、ブラウザ/機能に固有です。specs より優先されます。

型: (String | String[])[]

wdio:exclude

そのブラウザ/機能のテスト実行から仕様を除外します。通常の exclude 設定オプション と同じですが、ブラウザ/機能に固有です。exclude より優先されます。

型: String[]

wdio:enforceWebDriverClassic

デフォルトでは、WebdriverIO は WebDriver Bidi セッションの確立を試みます。それが好ましくない場合は、このフラグを設定してこの動作を無効にできます。

型: boolean

一般的なドライバオプション

すべてのドライバが異なる設定パラメータを提供していますが、WebdriverIO が理解してドライバまたはブラウザの設定に使用される共通のものがあります。

cacheDir

キャッシュディレクトリのルートへのパス。このディレクトリは、セッションの開始を試行したときにダウンロードされるすべてのドライバを保存するために使用されます。

型: string
デフォルト: process.env.WEBDRIVER_CACHE_DIR || os.tmpdir()

binary

カスタムドライババイナリへのパス。設定されている場合、WebdriverIO はドライバのダウンロードを試行せず、このパスで提供されたドライバを使用します。ドライバが使用しているブラウザと互換性があることを確認してください。

このパスは、CHROMEDRIVER_PATHGECKODRIVER_PATH、または EDGEDRIVER_PATH 環境変数で指定できます。

型: string

注意

ドライバのbinaryが設定されている場合、WebdriverIOはドライバのダウンロードを試みず、このパスで指定されたドライバを使用します。ドライバが使用しているブラウザと互換性があることを確認してください。

ブラウザ固有のドライバオプション

ドライバにオプションを伝達するには、次のカスタム機能を使用できます。

  • Chrome または Chromium: wdio:chromedriverOptions
  • Firefox: wdio:geckodriverOptions
  • Microsoft Edge: wdio:edgedriverOptions
  • Safari: wdio:safaridriverOptions
adbPort

ADB ドライバを実行するポート。

例: 9515

型: number

urlBase

コマンドのベースURLパス接頭辞(例: wd/url)。

例: /

型: string

logPath

stderr の代わりにファイルにサーバーログを書き込み、ログレベルを INFO に上げます。

型: string

logLevel

ログレベルを設定します。可能なオプションは ALLDEBUGINFOWARNINGSEVEREOFF です。

型: string

verbose

冗長にログを出力します(--log-level=ALL と同等)。

型: boolean

silent

何もログ出力しません(--log-level=OFF と同等)。

型: boolean

appendLog

上書きする代わりにログファイルに追加します。

型: boolean

replayable

冗長にログを出力し、長い文字列を切り捨てないようにして、ログを再生できるようにします(実験的)。

型: boolean

readableTimestamp

ログに読みやすいタイムスタンプを追加します。

型: boolean

enableChromeLogs

ブラウザからのログを表示します(他のログオプションを上書きします)。

型: boolean

bidiMapperPath

カスタムbidiマッパーパス。

型: string

allowedIps

EdgeDriverへの接続を許可するリモートIPアドレスのカンマ区切り許可リスト。

タイプ: string[]
デフォルト: ['']

allowedOrigins

EdgeDriverへの接続を許可するリクエスト元のカンマ区切り許可リスト。* を使用してすべてのホストのオリジンを許可することは危険です!

タイプ: string[]
デフォルト: ['*']

特定のユースケースのための特別な機能

これは、特定のユースケースを実現するために適用する必要がある機能を示す例の一覧です。

ヘッドレスブラウザの実行

ヘッドレスブラウザを実行することは、ウィンドウやUIなしでブラウザインスタンスを実行することを意味します。これは主にディスプレイを使用しないCI/CD環境で使用されます。ヘッドレスモードでブラウザを実行するには、次の機能を適用します。

{
browserName: 'chrome', // or 'chromium'
'goog:chromeOptions': {
args: ['headless', 'disable-gpu']
}
}

異なるブラウザチャネルの自動化

安定版としてまだリリースされていないブラウザバージョン(例:Chrome Canary)をテストしたい場合は、機能を設定し、開始したいブラウザを指定することで実行できます。

Chromeでテストする場合、WebdriverIOは定義されたbrowserVersionに基づいて、必要なブラウザバージョンとドライバーを自動的にダウンロードします。

{
browserName: 'chrome', // or 'chromium'
browserVersion: '116' // or '116.0.5845.96', 'stable', 'latest', 'dev', 'canary', 'beta'
}

手動でダウンロードしたブラウザをテストする場合は、ブラウザへのバイナリパスを以下のように指定できます。

{
browserName: 'chrome', // or 'chromium'
'goog:chromeOptions': {
binary: '/Applications/Google\ Chrome\ Canary.app/Contents/MacOS/Google\ Chrome\ Canary'
}
}

さらに、手動でダウンロードしたドライバーを使用する場合は、ドライバーへのバイナリパスを以下のように指定できます。

{
browserName: 'chrome', // or 'chromium'
'wdio:chromedriverOptions': {
binary: '/path/to/chromdriver'
}
}

カスタム機能の拡張

独自の機能セットを定義して、たとえば、その特定の機能のテスト内で使用される任意のデータを格納する場合は、以下のように設定できます。

export const config = {
// ...
capabilities: [{
browserName: 'chrome',
'custom:caps': {
// custom configurations
}
}]
}

機能の命名に関しては、実装固有の名前空間を示す:(コロン)文字を必要とするW3Cプロトコルに従うことをお勧めします。テストでは、たとえば以下のようにしてカスタム機能にアクセスできます。

browser.capabilities['custom:caps']

型安全性を確保するには、WebdriverIOの機能インターフェースを以下のように拡張できます。

declare global {
namespace WebdriverIO {
interface Capabilities {
'custom:caps': {
// ...
}
}
}
}

ようこそ!どうすればお手伝いできますか?

WebdriverIO AI Copilot