WebStorm 能直接运行 Playwright 跨浏览器测试,但必须依赖 playwright.config.ts 中显式定义的 projects 数组驱动;若配置缺失、为空或未声明多个 browserName(如 'chromium'、'firefox'、'webkit'),WebStorm 默认仅运行 Chromium。

WebStorm 能直接运行 Playwright 跨浏览器测试,但必须靠 playwright.config.ts 配置驱动,不是靠手动改代码或 CLI 参数临时拼凑。
为什么 WebStorm 点运行只跑 Chromium?
因为默认项目配置里没声明多浏览器项目。WebStorm 的运行逻辑完全跟随 playwright.config.ts 中的 projects 数组——它不识别你代码里写的 chromium.launch() 或 firefox.launch(),也不管你 CLI 传了什么参数。
- 即使你在测试文件里手动调用
firefox.launch(),WebStorm 运行器仍只会按配置启动一个浏览器(通常是 Chromium) - 如果
playwright.config.ts不存在,或projects是空数组/未定义,WebStorm 就默认 fallback 到单 Chromium 模式 - WebStorm 不会自动补全、推断或合并多个浏览器实例——它只读配置,不解析 JS/TS 逻辑
怎么配 playwright.config.ts 才能让 WebStorm 识别多浏览器?
必须显式定义 projects,每个项目带唯一 name 和明确的 browserName。WebStorm 会把每个 project 渲染成独立的运行项(比如右键菜单出现 “Run ‘Chromium’”、“Run ‘Firefox’”)。
export default {
projects: [
{
name: 'Chromium',
use: { browserName: 'chromium' },
},
{
name: 'Firefox',
use: { browserName: 'firefox' },
},
{
name: 'WebKit',
use: { browserName: 'webkit' },
},
],
};
- 确保
browserName值是字符串'chromium'、'firefox'或'webkit'(大小写敏感,不能写成'Chrome'或'Safari') - 每个
name必须唯一,且不能含空格或特殊字符(WebStorm 会用它生成运行配置 ID) - 配置文件路径必须是项目根目录下的
playwright.config.ts(或.js),WebStorm 不支持自定义路径
WebStorm 运行按钮灰掉或报错 Cannot find module '@playwright/test'?
这不是配置问题,是环境根本没装齐。WebStorm 只负责执行,不负责补依赖。
- 先确认
node_modules/@playwright/test目录存在——不存在就别点运行,纯白忙活 -
npm install或bun install只装 JS 包,不装浏览器二进制;必须额外跑npx playwright install chromium firefox webkit - 如果用了
bun,bun install不会触发浏览器安装,npx playwright install这步绝不能跳过 - WebStorm 右下角状态栏没出现 Playwright 图标,大概率是
Test Automation插件没启用(Settings → Plugins → 搜索并启用)
想看 Firefox/WebKit 界面,但点了 ▶ 还是无头?
WebStorm 默认走无头模式,--headed 必须绑定到具体 project,不能全局加。
- 在
playwright.config.ts对应 project 里加use: { headless: false },例如:
{
name: 'Firefox',
use: {
browserName: 'firefox',
headless: false
}
}
- 或者,在 WebStorm 运行配置里为该 project 单独填
--headed(Run → Edit Configurations → 选中对应 project → Playwright options 字段) - 不要在代码里写
firefox.launch({ headless: false })——WebStorm 不认这个,它只认配置里的use字段 - 如果同时设了
headless: false和devtools: true,Firefox 会弹调试器,WebKit 会弹 Web Inspector,Chromium 行为一致
跨浏览器测试真正麻烦的不是写几行配置,而是每次换浏览器都得验证是否真装了对应二进制——npx playwright install firefox 成功不代表 webkit 也装好了,漏一个,那个 project 就直接 fail。


















