跳至主要内容

配置

可以通过在服务级别或功能级别设置wdio:electronServiceOptions来配置服务,其中功能级别配置优先,例如以下 WebdriverIO 配置

wdio.conf.ts

export const config = {
// ...
services: [
[
'electron',
{
appBinaryPath: '/foo/bar/myApp'
},
],
],
capabilities: [
{
'browserName': 'electron',
'wdio:electronServiceOptions': {
appBinaryPath: '/foo/bar/myOtherApp'
appArgs: ['foo', 'bar'],
},
},
],
// ...
};

...将生成以下配置对象

{
"appBinaryPath": "/foo/bar/myOtherApp",
"appArgs": ["foo", "bar"]
}

服务选项

该服务支持以下配置选项

appBinaryPath:

要测试的应用程序的 Electron 二进制文件的路径。在大多数情况下,服务将自动确定应用程序的路径,但如果由于某种原因失败,例如您的应用程序位于与测试不同的存储库中,则建议手动设置此值。

类型:string

appArgs:

要传递给应用程序在测试运行执行期间的一系列字符串参数。Electron 命令行开关和一些 Chromium 开关可在此处使用。

类型:string[]

clearMocks:

在每个测试之前对所有模拟的 API 调用 .mockClear()。这将清除模拟历史记录,但不会重置其实现。

类型:boolean

resetMocks:

在每个测试之前对所有模拟的 API 调用 .mockReset()。这将清除模拟历史记录并将其实现重置为空函数(将返回 undefined)。

类型:boolean

restoreMocks:

在每个测试之前对所有模拟的 API 调用 .mockRestore()。这将恢复原始的 API 函数,模拟将被删除。

类型:boolean

Chromedriver 配置

wdio-electron-service 需要 Chromedriver 才能工作。Chromedriver 版本需要适合您的应用程序构建所使用的 Electron 版本,您可以让服务处理它(默认)或自己管理它。

服务管理

如果您未指定 Chromedriver 二进制文件,则服务将下载并使用适合您的应用程序 Electron 版本的版本。应用程序的 Electron 版本由 package.json 中的 electronelectron-nightly 的版本确定,但是您可能希望覆盖此行为 - 例如,如果您正在测试的应用程序位于与测试不同的存储库中。您可以通过设置 browserVersion 功能来手动指定 Electron 版本,如下面的示例配置所示

wdio.conf.ts

export const config = {
// ...
services: ['electron'],
capabilities: [
{
browserName: 'electron',
browserVersion: '28.0.0',
},
],
// ...
};

用户管理

如果您的应用程序使用的 Electron 版本低于 v26,则需要手动配置 Chromedriver。

这是因为 WDIO 使用 Chrome 进行测试来下载 Chromedriver,Chrome for Testing 仅提供 v115 或更高版本的 Chromedriver。

为了自己管理 Chromedriver,您可以直接安装它或通过其他方式(如 electron-chromedriver)安装,在这种情况下,您需要通过其自定义 wdio:chromedriverOptions 功能告诉 WebdriverIO 您的 Chromedriver 二进制文件在哪里。

例如,为了将 WDIO 与 Electron v19 应用程序一起使用,您必须从 https://chromedriver.chromium.org/downloads 下载 Chromedriver 102.0.5005.61。然后,您应该在 WDIO 配置中指定二进制文件路径,如下所示

wdio.conf.ts

export const config = {
// ...
services: ['electron'],
capabilities: [
{
'browserName': 'electron',
'wdio:chromedriverOptions': {
binary: '/Users/wdio/Downloads/chromedriver', // path to Chromedriver you just downloaded
},
},
],
// ...
};

欢迎!我如何帮助您?

WebdriverIO AI Copilot