驅動程式二進制檔
若要執行基於 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. 使用 Chromedriver、Edgedriver 或 Geckodriver 下載並安裝驅動程式。
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
- Yarn
- pnpm
npm install -g chromedriver
yarn global add chromedriver
pnpm add -g chromedriver
然後您可以透過以下方式啟動它
chromedriver --port=4444 --verbose
Geckodriver
若要自動化 Firefox,請為您的環境下載最新版本的 geckodriver
,並將其解壓縮到您的專案目錄中
- NPM
- Curl
- Brew
- Windows (64 位元 / Chocolatey)
- Windows (64 位元 / Powershell) 開發工具
- npm
- Yarn
- pnpm
npm install geckodriver
yarn add geckodriver
pnpm add geckodriver
Linux
curl -L https://github.com/mozilla/geckodriver/releases/download/v0.24.0/geckodriver-v0.24.0-linux64.tar.gz | tar xz
MacOS (64 位元)
curl -L https://github.com/mozilla/geckodriver/releases/download/v0.24.0/geckodriver-v0.24.0-macos.tar.gz | tar xz
brew install geckodriver
choco install selenium-gecko-driver
# Run as privileged session. Right-click and set 'Run as Administrator'
# Use geckodriver-v0.24.0-win32.zip for 32 bit Windows
$url = "https://github.com/mozilla/geckodriver/releases/download/v0.24.0/geckodriver-v0.24.0-win64.zip"
$output = "geckodriver.zip" # will drop into current directory unless defined otherwise
$unzipped_file = "geckodriver" # will unzip to this folder name
# By default, Powershell uses TLS 1.0 the site security requires TLS 1.2
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
# Downloads Geckodriver
Invoke-WebRequest -Uri $url -OutFile $output
# Unzip Geckodriver
Expand-Archive $output -DestinationPath $unzipped_file
cd $unzipped_file
# Globally Set Geckodriver to PATH
[System.Environment]::SetEnvironmentVariable("PATH", "$Env:Path;$pwd\geckodriver.exe", [System.EnvironmentVariableTarget]::Machine)
注意:其他 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