配置 WebdriverIO
Playwright vs WebdriverIO
如果你的项目尚未引入 WebdriverIO,我们建议从 Playwright 开始,因为它配置更简单,API 更灵活。
默认情况下,TypeScript 无法识别提供程序选项和额外的 expect 属性。请确保引用 @vitest/browser/providers/webdriverio,以便 TypeScript 能获取自定义选项的类型定义:
/// <reference types="@vitest/browser/providers/webdriverio" />或者,你也可以将其添加到 tsconfig.json 文件中的 compilerOptions.types 字段。请注意,在此字段中指定任何值将禁用 @types/* 包的自动加载。
{
"compilerOptions": {
"types": ["@vitest/browser/providers/webdriverio"]
}
}Vitest 会打开单个页面来运行同一文件中的所有测试。你可以在 instances 中配置 RemoteOptions 中指定的任何属性:
import { defineConfig } from 'vitest/config'
export default defineConfig({
test: {
browser: {
instances: [
{
browser: 'chrome',
capabilities: {
browserVersion: 86,
platformName: 'Windows 10',
},
},
],
},
},
})WARNING
在 Vitest 3 之前,这些选项位于 test.browser.providerOptions 属性中:
export default defineConfig({
test: {
browser: {
providerOptions: {
capabilities: {},
},
},
},
});providerOptions 已被弃用,推荐使用 instances。
你可以在 WebdriverIO 文档中找到大多数可用选项。请注意,Vitest 将忽略所有测试运行器选项,因为我们只使用 webdriverio 的浏览器能力。
TIP
最有用的选项位于 capabilities 对象上。WebdriverIO 允许嵌套的能力,但 Vitest 将忽略这些选项,因为我们依赖不同的机制来生成多个浏览器。
请注意,Vitest 将忽略 capabilities.browserName。请改用 test.browser.instances.name。