如何禁用Angular+Karma测试时Chrome弹出的搜索引擎选择窗口?
解决Angular Karma测试时Chrome弹出搜索引擎选择窗口的问题
Chrome更新后会在首次启动时触发搜索引擎设置引导,而Karma默认会启动一个干净的Chrome实例(使用临时用户数据目录),所以每次执行npm run test都会触发这个弹窗。解决方法很简单,给Chrome添加启动参数禁用这个引导即可:
- 打开项目根目录下的
karma.conf.js配置文件 - 在
config.set({ ... })的配置块中,添加或修改Chrome的启动参数:
如果你的配置里已经有customLaunchers,可以直接在对应的Chrome配置里加上--disable-search-engine-choice-screen参数:
customLaunchers: { ChromeHeadless: { base: 'ChromeHeadless', flags: [ '--no-sandbox', '--disable-setuid-sandbox', '--disable-search-engine-choice-screen' // 禁用搜索引擎选择窗口 ] }, Chrome: { base: 'Chrome', flags: [ '--disable-search-engine-choice-screen' ] } }, browsers: ['Chrome'] // 或者你常用的ChromeHeadless
如果没有customLaunchers,也可以通过browserOptions直接配置:
browserOptions: { chrome: { flags: ['--disable-search-engine-choice-screen'] } }
保存配置后再执行npm run test,搜索引擎选择窗口就不会再弹出了。
额外说明:
--no-sandbox和--disable-setuid-sandbox是解决部分环境下Chrome沙箱限制的参数,如果你的测试环境没有沙箱问题,可以只保留--disable-search-engine-choice-screen。
内容的提问来源于stack exchange,提问作者Reinhard
相关产品推荐
相关产品推荐

