如何在TestCafe测试中禁用Chrome的密码相关弹窗?
如何关闭Chrome在TestCafe测试时弹出的密码相关弹窗
环境信息
- Testcafe 3.6.0
- Chrome 版本 125.0.6422.112(正式版本)64位
- 运行系统:Fedora 40、AlmaLinux 8
问题描述
执行TestCafe测试脚本时,填写用户名密码并提交后页面刷新,Chrome会弹出两个独立于页面内容的弹窗:
- “检查已保存密码”弹窗
- “保存密码?”弹窗
这些弹窗由窗口管理器管理,目前未发现干扰测试执行,但屏幕上持续显示十分烦人。我使用的是本地测试环境的通用测试凭据,密码安全性不高,但不想为了消除弹窗特意更换密码,希望通过Chrome命令行参数或TestCafe的Runner配置对象直接在测试期间禁用这些弹窗。
此前找到过2020年的手动方案,需要进入Chrome设置取消勾选相关选项,但希望实现自动化配置。
解决方法
1. 可用的Chrome命令行参数
组合以下参数可同时禁用两类弹窗:
--password-store=basic:禁用Chrome密码存储提示与安全检查功能--disable-features=PasswordManagerUI:关闭密码管理器UI组件,阻止相关弹窗触发--disable-save-password-bubble:直接禁用“保存密码”气泡弹窗
2. 在TestCafe中配置传递参数
方式一:通过Runner API配置
在TestCafe Runner代码中指定浏览器时附加参数:
const createTestCafe = require('testcafe'); (async () => { const testcafe = await createTestCafe('localhost', 1337, 1338); try { const runner = testcafe.createRunner(); const failedCount = await runner .src(['tests/']) .browsers('chrome --password-store=basic --disable-features=PasswordManagerUI --disable-save-password-bubble') .run(); console.log('Tests failed: ' + failedCount); } finally { await testcafe.close(); } })();
注:如果使用无头模式,将
chrome改为chrome:headless即可
方式二:通过TestCafe配置文件
在项目根目录的.testcaferc.json中添加配置:
{ "browsers": "chrome --password-store=basic --disable-features=PasswordManagerUI --disable-save-password-bubble" }
参数验证
上述参数组合可同时屏蔽两类密码相关弹窗,无需手动修改Chrome设置。若某参数在新版本Chrome中失效,可尝试单独或组合使用剩余参数。
内容的提问来源于stack exchange,提问作者Neek
相关产品推荐
相关产品推荐

