本文へスキップ

Selenium Grid

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

サンプルのwdio.conf.tsからのコードスニペットを以下に示します。

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

}

Selenium Gridの設定に基づいて、プロトコル、ホスト名、ポート、パスに適切な値を指定する必要があります。テストスクリプトと同じマシンでSelenium Gridを実行している場合は、一般的なオプションを以下に示します。

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

}

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

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

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

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

connectionRetryTimeout: 180000,

高度な設定

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

Selenium Gridでのファイル操作

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

ファイルのダウンロード

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

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

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

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

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

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

Selenium Grid公式ドキュメント

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

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

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

WebdriverIO AI Copilot