如何使用Chrome无痕模式运行Cypress headed模式测试
解决方案
你可以通过给Chrome传递启动参数的方式,在headed模式下启用无痕窗口运行Cypress测试,以下是两种实现方式:
方式一:修改配置文件(长期生效)
在你的项目Cypress配置文件(通常为cypress.config.js或cypress.config.ts)中添加before:browser:launch事件监听,注入无痕模式启动参数:
const { defineConfig } = require('cypress') module.exports = defineConfig({ e2e: { setupNodeEvents(on, config) { on('before:browser:launch', (browser, launchOptions) => { // 仅针对Chromium内核浏览器(Chrome、Edge等)生效 if (browser.family === 'chromium' && browser.name !== 'electron') { launchOptions.args.push('--incognito') // 如需彻底禁用所有扩展可额外加下面这行 // launchOptions.args.push('--disable-extensions') return launchOptions } }) } } })
配置完成后使用你原有的命令执行即可:npx cypress run --browser chrome --headed
此时启动的Chrome headed窗口默认运行在无痕模式,不会加载企业强制安装的扩展,可规避拦截问题。
方式二:命令行直接传参(临时使用)
如果仅需要临时测试不想修改配置文件,可以直接在运行命令中传递启动参数:npx cypress run --browser chrome --headed --config browserLaunchOptions.args=["--incognito"]
注意事项
- 无痕模式下测试产生的Cookie、本地存储、缓存等数据会在测试结束后自动清除,不会和你本地日常使用的Chrome数据产生冲突
- 若添加
--incognito后仍有扩展拦截,可追加--disable-extensions参数彻底禁用所有Chrome扩展,进一步规避拦截
内容的提问来源于stack exchange,提问作者Automation89
相关产品推荐
相关产品推荐

