You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用JavaScript结合Selenium WebDriver处理Chrome通知弹窗

处理Chrome通知权限弹窗的方案

这个弹窗是Chrome的原生权限请求窗口,不属于网页DOM元素,所以没法用普通的JavaScript DOM操作来处理,得结合Selenium WebDriver的配置或者特殊手段解决,下面是几种靠谱的方法:

方法一:提前配置Chrome选项(最推荐)

直接在启动Chrome时设置偏好,让浏览器默认允许或阻止通知请求,从根源上避免弹窗出现。

允许通知的配置代码

Java版本

ChromeOptions options = new ChromeOptions();
Map<String, Object> prefs = new HashMap<>();
// 1代表允许通知,2代表阻止
prefs.put("profile.default_content_setting_values.notifications", 1);
options.setExperimentalOption("prefs", prefs);
WebDriver driver = new ChromeDriver(options);

Python版本

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
prefs = {"profile.default_content_setting_values.notifications": 1}
chrome_options.add_experimental_option("prefs", prefs)
driver = webdriver.Chrome(options=chrome_options)

直接阻止通知的简化配置

要是根本不需要接收通知,用这个参数更省事:

Java版本

ChromeOptions options = new ChromeOptions();
options.addArguments("--disable-notifications");
WebDriver driver = new ChromeDriver(options);

Python版本

chrome_options = Options()
chrome_options.add_argument("--disable-notifications")
driver = webdriver.Chrome(options=chrome_options)

方法二:处理已弹出的弹窗(仅Windows可用,不推荐)

如果弹窗已经弹出来了,因为它是系统级窗口,Selenium没法直接定位元素,只能借助系统工具模拟操作:
比如用键盘快捷键切换按钮再确认:

Java版本(用Robot类)

Robot robot = new Robot();
// 按Tab切换到允许/阻止按钮
robot.keyPress(KeyEvent.VK_TAB);
robot.keyRelease(KeyEvent.VK_TAB);
// 按Enter确认
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);

Python版本(用pyautogui)

import pyautogui

pyautogui.press('tab')
pyautogui.press('enter')

提示:这种方法依赖系统环境,稳定性很差,除非万不得已,别用。

为啥普通JavaScript方法没用?

因为这个弹窗是Chrome浏览器自带的原生UI,不是网页里的DOM元素,所以document.querySelector()这类JS方法根本找不到它,自然没法操作。

内容的提问来源于stack exchange,提问作者Rajbeer Singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 05:36:17