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 儲存庫。