メインコンテンツにスキップ

ケーパビリティ

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

情報

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

カスタムケーパビリティ

固定された定義済みケーパビリティの数は非常に少ないですが、誰でも自動化ドライバーやリモートインターフェースに特有のカスタムケーパビリティを提供および受け入れることができます:

ブラウザ固有のケーパビリティ拡張

  • goog:chromeOptions: Chromedriver拡張、Chromeでのテストにのみ適用可能
  • moz:firefoxOptions: Geckodriver拡張、Firefoxでのテストにのみ適用可能
  • ms:edgeOptions: EdgeOptions Chromium EdgeをテストするためにEdgeDriverを使用する際の環境を指定するため

クラウドベンダーケーパビリティ拡張

自動化エンジンケーパビリティ拡張

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[]
デフォルト: ['*']

spawnOpts

ドライバープロセスに渡されるオプション。

タイプ: SpawnOptionsWithoutStdio | SpawnOptionsWithStdioTuple<StdioOption, StdioOption, StdioOption>
デフォルト: undefined

特定のユースケース向けの特別なケーパビリティ

以下は、特定のユースケースを達成するために適用する必要があるケーパビリティの例のリストです。

ブラウザをヘッドレスで実行する

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

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

異なるブラウザチャンネルを自動化する

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

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

{
browserName: 'chrome', // または 'chromium'
browserVersion: '116' // または '116.0.5845.96', 'stable', 'dev', 'canary', 'beta' または 'latest' ('canary'と同じ)
}

手動でダウンロードしたブラウザをテストしたい場合は、ブラウザへのバイナリパスを提供できます:

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

さらに、手動でダウンロードしたドライバーを使用したい場合は、ドライバーへのバイナリパスを提供できます:

{
browserName: 'chrome', // または 'chromium'
'wdio:chromedriverOptions': {
binary: '/path/to/chromdriver'
}
}

カスタムケーパビリティを拡張する

例えば、特定のケーパビリティのテスト内で使用する任意のデータを保存するために、独自のケーパビリティセットを定義したい場合は、以下のように設定できます:

export const config = {
// ...
capabilities: [{
browserName: 'chrome',
'custom:caps': {
// カスタム設定
}
}]
}

ケーパビリティの命名に関しては、実装固有の名前空間を示す: (コロン) 文字を必要とするW3Cプロトコルに従うことをお勧めします。テスト内では、カスタムケーパビリティに次のようにアクセスできます:

browser.capabilities['custom:caps']

型安全性を確保するために、WebdriverIOのケーパビリティインターフェースを次のように拡張できます:

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

Welcome! How can I help?

WebdriverIO AI Copilot