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

Selenium Grid

WebdriverIOを既存のSelenium Gridインスタンスと一緒に使用できます。テストをSelenium Gridに接続するには、テストランナーの設定でオプションを更新するだけです。

以下はサンプルのwdio.conf.tsからのコードスニペットです。

export const config: WebdriverIO.Config = {
// ...
protocol: 'https',
hostname: 'yourseleniumgridhost.yourdomain.com',
port: 443,
path: '/wd/hub',
// ...

}

Selenium Gridの設定に基づいて、protocol、hostname、port、pathに適切な値を提供する必要があります。 テストスクリプトと同じマシンでSelenium Gridを実行している場合、一般的なオプションは次のとおりです:

export const config: WebdriverIO.Config = {
// ...
protocol: 'http',
hostname: 'localhost',
port: 4444,
path: '/wd/hub',
// ...

}

保護されたSelenium Gridでの基本認証

Selenium Gridを保護することを強くお勧めします。認証が必要な保護されたSelenium Gridがある場合、オプションを介して認証ヘッダーを渡すことができます。 詳細については、ドキュメントのheadersセクションを参照してください。

動的Selenium Gridとのタイムアウト設定

ブラウザポッドがオンデマンドでスピンアップされる動的Selenium Gridを使用する場合、セッション作成がコールドスタートに直面する可能性があります。そのような場合は、セッション作成タイムアウトを増やすことをお勧めします。オプションのデフォルト値は120秒ですが、グリッドが新しいセッションを作成するのにより多くの時間がかかる場合は増やすことができます。

connectionRetryTimeout: 180000,

高度な設定

高度な設定については、テストランナーの設定ファイルを参照してください。

Selenium Gridでのファイル操作

リモートSelenium Gridでテストケースを実行する場合、ブラウザはリモートマシンで実行され、ファイルのアップロードとダウンロードを含むテストケースには特別な注意が必要です。

ファイルダウンロード

Chromiumベースのブラウザについては、Download fileのドキュメントを参照できます。テストスクリプトがダウンロードしたファイルの内容を読み取る必要がある場合は、リモートSeleniumノードからテストランナーマシンにダウンロードする必要があります。以下は、サンプルのwdio.conf.ts設定からのChromeブラウザ用のコードスニペットの例です:

export const config: WebdriverIO.Config = {
// ...
protocol: 'https',
hostname: 'yourseleniumgridhost.yourdomain.com',
port: 443,
path: '/wd/hub',
// ...
capabilities: [{
browserName: 'chrome',
'se:downloadsEnabled': true
}],
//...
}

リモートSelenium Gridでのファイルアップロード

リモートブラウザでウェブアプリにファイルをアップロードするには、まずファイルをリモートグリッドにアップロードする必要があります。詳細については、uploadFileのドキュメントを参照してください。

その他のファイル/グリッド操作

Selenium Gridで実行できるその他の操作がいくつかあります。Selenium Standaloneの手順はSelenium Gridでも正常に動作するはずです。利用可能なオプションについては、Selenium Standaloneのドキュメントを参照してください。

Selenium Grid公式ドキュメント

Selenium Gridの詳細については、Selenium Grid公式のドキュメントを参照してください。

Docker、Docker compose、またはKubernetesでSelenium Gridを実行したい場合は、Selenium-DockerのGitHubリポジトリを参照してください。

Welcome! How can I help?

WebdriverIO AI Copilot