
本文介绍通过 selenium 启动 chrome 时,精准禁用新版 chrome(125+)中强制出现的“enhanced ad privacy”弹窗的可靠方法,核心是禁用 `privacysandboxsettings4` 特性,而非过时的广告拦截相关参数。
Chrome 自 125 版本起,默认启用 Privacy Sandbox 相关功能,并在首次启动或检测到新用户配置时,强制弹出「Enhanced ad privacy」提示框(如下图所示),该弹窗无法通过常规页面操作(如 driver.switch_to.alert.accept())关闭,因其属于浏览器级 UI(Browser UI),非网页 DOM 元素。
常见误区是尝试禁用 EnhancedAdBlocking 或启用 --disable-popup-blocking —— 这些参数对 Privacy Sandbox 弹窗完全无效,因为该弹窗与广告拦截逻辑无关,而是由 Chrome 的隐私沙盒初始化流程触发。
✅ 正确解决方案:在 Chrome 启动参数中禁用 PrivacySandboxSettings4 特性。该特性控制 Privacy Sandbox 设置页的首次引导行为,禁用后既不会显示弹窗,也不会影响后续正常浏览或自动化任务。
以下是完整、可直接复用的 Python + Selenium 配置示例:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
# 关键:禁用 Privacy Sandbox 初始化引导弹窗
chrome_options.add_argument('--disable-features=PrivacySandboxSettings4')
# 可选:提升稳定性(推荐组合)
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-dev-shm-usage')
chrome_options.add_argument('--disable-gpu')
chrome_options.add_argument('--remote-debugging-port=9222')
# 如需无头模式(CI/服务器环境)
# chrome_options.add_argument('--headless=new')
driver = webdriver.Chrome(options=chrome_options)
driver.get("https://example.com")
# 此时将不再出现 Enhanced ad privacy 弹窗⚠️ 注意事项:
- 该参数适用于 Chrome 125 及以上版本(当前主流稳定版均已包含);旧版本无需设置,但添加亦无害。
- 不要混用 --disable-features=PrivacySandbox(已弃用)或 PrivacySandboxSettings(不完整,可能失效),必须使用全称 PrivacySandboxSettings4。
- 若仍出现弹窗,请确认 Chrome 浏览器已更新,并清除 user-data-dir 缓存目录(Selenium 默认每次新建临时 Profile,通常无需手动清理;但若复用自定义 profile,需确保其未缓存旧版引导状态)。
- 该方案为启动时预防性屏蔽,无需运行时干预,简洁、稳定、符合自动化最佳实践。
总结:解决此类浏览器原生弹窗的关键,在于理解其背后触发的 Chrome 功能标识(Feature Flag),而非试图模拟点击或等待元素——Selenium 无法操控 Browser UI 层。精准禁用 PrivacySandboxSettings4 是目前最轻量、最可靠的官方兼容方案。










