跳到主要內容

Selenium Grid

您可以將 WebdriverIO 與現有的 Selenium Grid 實例搭配使用。若要將您的測試連線到 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 的逾時組態

當使用依需求啟動瀏覽器 pod 的動態 Selenium Grid 時,工作階段建立可能會遇到冷啟動。在這種情況下,建議增加工作階段建立逾時。選項中的預設值為 120 秒,但如果您的 grid 需要更多時間來建立新工作階段,您可以增加它。

connectionRetryTimeout: 180000,

進階組態

如需進階組態,請參閱測試執行器組態檔

使用 Selenium Grid 的檔案操作

當使用遠端 Selenium Grid 執行測試案例時,瀏覽器會在遠端機器上執行,而您需要特別注意涉及檔案上傳和下載的測試案例。

檔案下載

對於基於 Chromium 的瀏覽器,您可以參考下載檔案文件。如果您的測試腳本需要讀取已下載檔案的內容,您需要將它從遠端 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 進行檔案上傳

若要將檔案上傳到遠端瀏覽器中的 Web 應用程式,您首先需要將檔案上傳到遠端 grid。您可以參考uploadFile 文件,以取得詳細資訊。

其他檔案/grid 操作

您可以使用 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