如何用Selenium禁用Chrome中「网站请求打开应用」的弹窗?
拦截Chrome中外部应用启动请求弹窗的解决方案
你遇到的这类弹窗是Chrome处理外部协议关联请求时触发的,和普通网页弹窗不是一回事,所以你之前用的--disable-popup-blocking参数完全不生效——这个参数只负责拦截网页内的弹出窗口。
要解决这个问题,需要通过Chrome的偏好设置来禁用这类外部应用启动请求,具体代码如下:
from selenium import webdriver options = webdriver.ChromeOptions() # 拦截Spotify协议的外部应用启动请求 options.add_experimental_option( "prefs", { "protocol_handler.excluded_schemes": { "spotify": True } } ) driver = webdriver.Chrome(options=options)
如果需要拦截所有外部协议的启动请求(比如mailto、tel等),可以用更通用的设置:
options.add_experimental_option( "prefs", { "protocol_handler.allowed_origin_protocol_pairs": {} } )
关键说明
protocol_handler.excluded_schemes:指定单个协议直接被拦截,不会触发弹窗;protocol_handler.allowed_origin_protocol_pairs:清空所有已允许的站点-协议关联,所有外部应用启动请求都会被拦截。
内容的提问来源于stack exchange,提问作者ezbooz
相关产品推荐
相关产品推荐

