如何在Protractor每次运行新Chrome配置文件时启用弹窗?
解决Protractor自动启用Chrome弹窗的方案
当然有可行的办法!Protractor默认每次运行都会创建独立的临时Chrome配置文件,正好可以通过自定义ChromeOptions来让这个临时配置自动允许弹窗,完全不用依赖你本地的现有配置。
下面是具体的实现步骤:
1. 修改Protractor配置文件(protractor.conf.js)
找到配置文件里的capabilities部分,添加chromeOptions来配置弹窗权限。这里分两种常见场景:
场景1:允许通知类弹窗
如果你的需求是允许网站发送的通知弹窗,直接通过prefs设置对应的权限值:
exports.config = { // 其他配置项(比如specs、framework等) capabilities: { browserName: 'chrome', chromeOptions: { prefs: { // 1 = 允许通知弹窗,2 = 阻止,0 = 默认 'profile.default_content_setting_values.notifications': 1, // 可选:如果只需要允许特定网站的通知,可以配置如下 // 'profile.content_settings.exceptions.notifications': { // 'https://your-test-site.com,*': { setting: 1 } // } } } } };
场景2:禁用所有弹窗拦截(包括普通弹出窗口)
如果需要允许所有类型的弹窗(比如新开窗口的弹窗),可以在args里添加禁用弹窗拦截的参数,搭配通知权限设置:
exports.config = { // 其他配置项 capabilities: { browserName: 'chrome', chromeOptions: { args: ['--disable-popup-blocking'], prefs: { 'profile.default_content_setting_values.notifications': 1 } } } };
2. 验证效果
保存配置后重新运行Protractor测试,你会发现Chrome启动时已经自动启用了弹窗权限,而且用的还是Protractor创建的全新临时配置,完全不会影响你本地Chrome的设置。
这种方法的核心是利用Chrome的偏好设置(prefs)和启动参数(args),直接在临时配置里注入我们需要的权限,既满足了“全新配置文件”的要求,又自动开启了弹窗功能。
内容的提问来源于stack exchange,提问作者dhru soni
相关产品推荐
相关产品推荐

