添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

用于测试 Electron 应用程序的 WebdriverIO 服务

通过丰富的 WebdriverIO 生态系统实现跨平台 Electron 应用 E2E 测试。

Spectron 的精神继承者( RIP )。

通过以下方式使 Electron 应用程序测试变得更加简单:

  • 🚗 自动设置所需的 Chromedriver(适用于 Electron v26 及以上版本)
  • 📦 自动检测 Electron 应用程序路径
  • 支持 Electron Forge Electron Builder 和未打包的应用
  • 🧩 在测试中访问 Electron API
  • 🕵️ 通过类似 Vitest 的 API 模拟 Electron API
  • 您需要安装 WebdriverIO ,安装指南可以在 这里 找到。

    快速开始

    快速上手的推荐方式是使用 WDIO 配置向导

    手动快速开始

    要在不使用配置向导的情况下开始,您需要安装服务和 @wdio/cli

    npm install --dev @wdio/cli wdio-electron-service

    或者使用您选择的包管理器 - pnpm、yarn 等。

    接下来,创建您的 WDIO 配置文件。如果您需要一些灵感,可以参考本仓库 示例目录 中的可用配置,以及 WDIO 配置参考页面

    您需要将 electron 添加到您的 services 数组中并设置 Electron capability,例如:

    wdio.conf.ts

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

    最后,使用您的配置文件 运行一些测试

    这将以与 WDIO 处理 Chrome 或 Firefox 等浏览器相同的方式启动您的应用程序实例。如果您需要同时运行其他实例,例如多个应用程序实例或应用程序与 Web 浏览器的不同组合,该服务可以与 WDIO(并行)multiremote 一起使用。

    如果您使用 Electron Forge Electron Builder 打包您的应用,则 该服务将自动尝试找到您打包的 Electron 应用的路径。您可以通过自定义服务能力提供二进制文件的自定义路径,例如:

    wdio.conf.ts

    export const config = {
    // ...
    capabilities: [
    {
    'browserName': 'electron',
    'wdio:electronServiceOptions': {
    appBinaryPath: './path/to/built/electron/app.exe',
    appArgs: ['foo', 'bar=baz'],
    },
    },
    ],
    // ...
    };

    请参阅 配置文档 ,了解如何为 Electron 支持的不同操作系统找到 appBinaryPath 值。

    或者,您可以通过提供 main.js 脚本的路径,将服务指向未打包的应用。Electron 需要安装在您的 node_modules 中。建议使用 Rollup、Parcel、Webpack 等打包工具来打包未打包的应用。

    wdio.conf.ts

    export const config = {
    // ...
    capabilities: [
    {
    'browserName': 'electron',
    'wdio:electronServiceOptions': {
    appEntryPoint: './path/to/bundled/electron/main.bundle.js',
    appArgs: ['foo', 'bar=baz'],
    },
    },
    ],
    // ...
    };

    Chromedriver 配置

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

    这是因为 WDIO 使用 Chrome for Testing 下载 Chromedriver,它只提供 v115 或更新版本的 Chromedriver。

    Chromedriver 配置
    访问 Electron API
    模拟 Electron API
    常见问题和调试

    如果您有兴趣贡献,请阅读 开发文档

    示例集成

    查看我们的 Electron 样板 项目,该项目展示了如何在示例应用程序中集成 WebdriverIO。您还可以查看本仓库中的 示例应用 E2E 测试 目录。

    如果您在使用该服务运行 WDIO 时遇到问题,首先应该查看文档中的 常见问题 ,然后在 主要 WDIO 论坛 中开启讨论。