跳到主要內容

驅動程式二進制檔

若要執行基於 WebDriver 協議的自動化,您需要設定瀏覽器驅動程式,這些驅動程式會翻譯自動化指令,並能夠在瀏覽器中執行它們。

自動化設定

使用 WebdriverIO v8.14 及以上版本,不再需要手動下載和設定任何瀏覽器驅動程式,因為這由 WebdriverIO 處理。您只需要指定您要測試的瀏覽器,WebdriverIO 會處理剩下的事情。

自訂自動化層級

WebdriverIO 的自動化有三個層級

1. 使用 @puppeteer/browsers 下載並安裝瀏覽器。

如果您在功能設定中指定 browserName/browserVersion 組合,WebdriverIO 將下載並安裝請求的組合,無論機器上是否存在現有安裝。如果您省略 browserVersion,WebdriverIO 將首先嘗試使用 locate-app 定位並使用現有安裝,否則它將下載並安裝當前穩定的瀏覽器版本。有關 browserVersion 的更多詳細資訊,請參閱這裡

注意

自動化瀏覽器設定不支援 Microsoft Edge。目前,僅支援 Chrome、Chromium 和 Firefox。

如果您的瀏覽器安裝在 WebdriverIO 無法自動偵測到的位置,您可以指定瀏覽器二進制檔,這將停用自動下載和安裝。

{
capabilities: [
{
browserName: 'chrome', // or 'firefox' or 'chromium'
'goog:chromeOptions': { // or 'moz:firefoxOptions' or 'wdio:chromedriverOptions'
binary: '/path/to/chrome'
},
}
]
}

2. 使用 ChromedriverEdgedriverGeckodriver 下載並安裝驅動程式。

WebdriverIO 將始終執行此操作,除非在設定中指定驅動程式 二進制檔

{
capabilities: [
{
browserName: 'chrome', // or 'firefox', 'msedge', 'safari', 'chromium'
'wdio:chromedriverOptions': { // or 'wdio:geckodriverOptions', 'wdio:edgedriverOptions'
binary: '/path/to/chromedriver' // or 'geckodriver', 'msedgedriver'
}
}
]
}
資訊

WebdriverIO 不會自動下載 Safari 驅動程式,因為它已安裝在 macOS 上。

注意

避免為瀏覽器指定 binary,而省略對應的驅動程式 binary,反之亦然。如果僅指定其中一個 binary 值,WebdriverIO 將嘗試使用或下載與之相容的瀏覽器/驅動程式。但是,在某些情況下,它可能會導致不相容的組合。因此,建議您始終指定兩者,以避免因版本不相容而導致任何問題。

3. 啟動/停止驅動程式。

預設情況下,WebdriverIO 將使用任意未使用的連接埠自動啟動和停止驅動程式。指定以下任何設定將停用此功能,這表示您需要手動啟動和停止驅動程式

手動設定

以下說明您如何仍然單獨設定每個驅動程式。您可以在 awesome-selenium README 中找到包含所有驅動程式的列表。

提示

如果您想設定行動和其他 UI 平台,請查看我們的 Appium 設定 指南。

Chromedriver

若要自動化 Chrome,您可以直接在專案網站或透過 NPM 套件下載 Chromedriver

npm install -g chromedriver

然後您可以透過以下方式啟動它

chromedriver --port=4444 --verbose

Geckodriver

若要自動化 Firefox,請為您的環境下載最新版本的 geckodriver,並將其解壓縮到您的專案目錄中

npm install geckodriver

注意:其他 geckodriver 版本可在此處取得。下載後,您可以透過以下方式啟動驅動程式

/path/to/binary/geckodriver --port 4444

Edgedriver

您可以在專案網站或透過 NPM 套件下載 Microsoft Edge 的驅動程式

npm install -g edgedriver
edgedriver --version # prints: Microsoft Edge WebDriver 115.0.1901.203 (a5a2b1779bcfe71f081bc9104cca968d420a89ac)

Safaridriver

Safaridriver 已預先安裝在您的 MacOS 上,可以直接透過以下方式啟動

safaridriver -p 4444

歡迎!我能如何協助您?

WebdriverIO AI Copilot