配置 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
。