Python Selenium中accept/dismiss无法绕过网页推送通知,求Firefox处理方法
解决Firefox中网页通知权限弹窗的问题

你遇到的这种通知权限弹窗不是JavaScript原生Alert,所以switch_to.alert这类处理JS弹窗的方法根本不管用。下面给你两种可行的处理方案:
方案一:提前配置,直接跳过弹窗
初始化Firefox驱动时,通过设置浏览器偏好,直接授予或拒绝通知权限,页面加载时就不会弹出请求框:
from selenium import webdriver from selenium.webdriver.firefox.options import Options options = Options() # 参数说明:2=允许所有通知请求,1=拒绝所有,0=默认弹窗 options.set_preference("permissions.default.desktop-notification", 2) driver = webdriver.Firefox(options=options) driver.get("你的目标网页URL")
方案二:运行时动态处理权限
如果需要在代码执行过程中动态处理权限,可以用Firefox的DevTools API操作:
from selenium import webdriver driver = webdriver.Firefox() driver.get("你的目标网页URL") # 授予当前页面通知权限 driver.execute_cdp_cmd("Browser.grantPermissions", { "origin": driver.current_url, "permissions": ["notifications"] }) # 如果要拒绝权限,添加revoke参数即可 # driver.execute_cdp_cmd("Browser.grantPermissions", { # "origin": driver.current_url, # "permissions": ["notifications"], # "revoke": True # })
注意:该方法要求你的Selenium与Firefox版本尽量匹配且保持较新状态,确保API兼容。
内容的提问来源于stack exchange,提问作者iDay
相关产品推荐
相关产品推荐

