如何在undetected_chromedriver.v2中禁用弹窗拦截?现有方案无效求助
解决undetected_chromedriver.v2弹窗拦截无效的问题
- 注意undetected_chromedriver的初始化逻辑,要确保弹窗配置在初始化浏览器前正确传入,别搞反顺序:
from undetected_chromedriver import Chrome, ChromeOptions options = ChromeOptions() # 同时启用两种弹窗允许设置 options.add_argument("--disable-popup-blocking") options.add_experimental_option("prefs", { "profile.default_content_setting_values.popups": 1, # 额外加上自动下载权限,避免登录相关的下载弹窗被拦截 "profile.content_settings.exceptions.automatic_downloads.*.setting": 1 }) # 必须把options传给Chrome的初始化参数 driver = Chrome(options=options)
- 试试指定自定义用户数据目录,防止undetected_chromedriver加载默认配置覆盖你的设置:
# 替换成你本地的空文件夹路径,提前建好 options.add_argument(r"--user-data-dir=C:\Users\YourName\Desktop\ChromeProfile") options.add_argument(r"--profile-directory=Default")
用自定义目录后,浏览器的配置会持久化,后续再启动也能保留弹窗允许的设置。
- 如果是谷歌登录时的系统级身份验证弹窗(不是网页JS弹窗),可以用等待捕获并处理:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC # 最多等10秒,直到弹窗出现 WebDriverWait(driver, 10).until(EC.alert_is_present()) alert = driver.switch_to.alert # 根据需求选择接受或取消 alert.accept() # alert.dismiss()
- 最后检查版本,旧版本可能存在配置兼容问题,直接更新到最新版:
pip install --upgrade undetected-chromedriver
内容的提问来源于stack exchange,提问作者Aaron
相关产品推荐
相关产品推荐

