1 WebDriver 概述
2 分钟阅读
WebDriver 是一个与 Web 文档交互的标准化接口,主要用于自动化测试。与 Tauri 配合使用的推荐方式是 WebdriverIO 和 @wdio/tauri-service,它可在 Windows、Linux 和 macOS 上工作。它由 WebdriverIO 项目维护,通过 browser.tauri.execute() 提供 Tauri API 访问、命令(IPC)模拟、前端与后端日志捕获以及 multiremote 支持。
默认情况下,该服务在你的应用内运行一个内嵌的 WebDriver 服务器,因此在任何平台上都不需要外部驱动——macOS 也是这样得到支持的。它也可以在 Windows 和 Linux 上通过 tauri-driver 驱动平台的本地 WebDriver,或在所有平台上使用 CrabNebula 的跨平台 tauri-driver 分支(在 macOS 上需要付费 API 密钥)。无论选择哪条路线,该服务都会检测你的应用二进制文件;在 tauri-driver 路线上,它还会在 Windows 上替你保持 Edge WebDriver 版本同步。
快速搭建项目的最快方式是 WebdriverIO 脚手架:
| |
选择 Desktop Testing,并在框架提示处选择 Tauri。一个最小配置如下:
| |
这套配置用到两个小型 Tauri 插件,是否使用取决于你的需求:
tauri-plugin-wdio-webdriver运行内嵌的 WebDriver 服务器。embedded提供方(默认)需要它——服务通过它驱动你的应用,无需外部驱动,macOS 也是这样得到支持的。如果你想改用external或crabnebula提供方,可以跳过它。tauri-plugin-wdio启用后端访问,包括:browser.tauri.execute()、命令(IPC)模拟以及日志捕获。
完整步骤请参阅 插件设置,如果使用 CrabNebula 提供方,请参阅 CrabNebula 设置指南。
对于快速的、只涉及渲染器的测试,还有一种 browser 模式:在普通 Chrome 中针对 Vite 开发服务器运行你的 Tauri 前端——不需要 Tauri 二进制、驱动或插件。它会拦截 invoke() 调用,让你用同样的 WDIO API 模拟命令并断言其参数。参见 browser 模式指南。
关于 @wdio/tauri-service 的完整设置、配置与 API 参考,请查阅 WebdriverIO Tauri 文档。
示例应用
使用该服务的完整可运行示例位于 WebdriverIO desktop-mobile 仓库。
持续集成(CI)
WebDriver CI 指南说明了如何在 GitHub Actions 下运行这些测试,以及其背后的概念。
参见 持续集成(CI)。
直接驱动 tauri-driver
如果你不使用 Node.js、更偏好 Selenium,或者要把 WebDriver 集成进自定义测试框架,你可以直接驱动 tauri-driver,而不使用该服务。直接驱动时,桌面端只支持 Windows 和 Linux,因为 macOS 没有可用的 WKWebView 驱动工具(macOS 请使用服务的内嵌 WebDriver 服务器)。
参见手动配置 WebDriver:自行安装并驱动 tauri-driver(仅 Windows 和 Linux)。