驱动程序二进制文件
要运行基于 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
自述文件中找到所有驱动程序的列表。
如果您想设置移动设备和其他 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)DevTools
- 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