自动化需调用外部应用的网站时如何处理Chrome权限弹窗?
Chrome 外部应用唤起弹窗的自动化适配方案
这个弹窗是Chrome针对自定义协议链接(如weixin://、vscode://这类非HTTP/HTTPS的唤起链接)的原生安全校验,不需要借助系统级UI工具点击弹窗,通过启动参数配置就能直接跳过触发逻辑,和你现有已经配置的启动参数完全兼容,不需要移除原有参数。
可直接追加的启动参数
你可以在现有启动参数列表末尾直接新增以下内容,不会和原有配置冲突:
--allow-startup-native-protocols:从启动层面放行所有页面发起的原生应用唤起请求,阻断弹窗的触发链路- 调整原有
--disable-features参数的内容:把原有的--disable-features=site-per-process,TranslateUI,BlinkGenPropertyTrees修改为--disable-features=site-per-process,TranslateUI,BlinkGenPropertyTrees,ExternalProtocolDialogShow,从功能开关层面彻底关闭外部协议弹窗的渲染逻辑,这个方案稳定性最高,适配所有Chrome 90以上的版本。
注意:如果不想修改原有disable-features的配置项,也可以单独新增一行
--disable-features=ExternalProtocolDialogShow,Chrome会自动合并多个同类型参数的配置,但优先建议合并到同一个参数项中,避免出现参数优先级覆盖的问题。你现有配置的所有启动参数都可以完整保留,不需要做移除操作,尤其不要删除--enable-automation这类基础自动化适配参数,这类参数和外部协议弹窗的触发逻辑完全无关,删除后反而可能触发Chrome的自动化检测机制,导致网页流程跑不通。
低稳定性的备用方案
如果启动参数调整后仍然存在弹窗触发的场景,可以采用预配置用户目录权限的方案:
- 定位到自动化启动Chrome时指定的用户数据存储目录,打开目录下的
Preferences配置文件 - 在文件中的
protocol_handler配置节点下,将你需要自动化的网站域名、对应要唤起的自定义协议加入永久允许列表,配置完成后Chrome会直接默认该域名拥有对应协议的唤起权限,不会弹出确认窗。 - 不推荐使用网页自动化框架抓取弹窗元素做点击操作:这个弹窗属于Chrome原生的系统级窗口,不属于网页DOM结构,常规的网页定位工具无法捕获弹窗控件,需要借助系统级UI工具做坐标点击,很容易因为窗口缩放、位置偏移失效。
内容的提问来源于stack exchange,提问作者Erik B
相关产品推荐
相关产品推荐

