跳至主要内容

驱动程序二进制文件

要运行基于 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自述文件中找到所有驱动程序的列表。

提示

如果您想设置移动设备和其他 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