如何在Chrome WebDriver中彻底禁用密码管理器(求最新方案)
彻底禁用新版Chrome密码管理器弹窗(适配Selenium自动化)
针对新版Chrome(115+)旧参数失效的问题,以下是两个经过验证的有效方案:
方案一:组合最新启动参数+偏好设置
直接通过ChromeOptions配置,从启动阶段就禁用密码管理器和自动填充相关服务:
from selenium import webdriver from selenium.webdriver.chrome.options import Options chrome_opt = Options() # 添加最新有效的启动参数 chrome_opt.add_argument('--disable-features=AutofillServerCommunication,PasswordManager') chrome_opt.add_argument('--disable-autofill-keyboard-accessory-view[FILL_PASSWORD]') chrome_opt.add_argument('--password-store=basic') # 设置浏览器偏好,彻底关闭密码管理器和自动填充 prefs = { "credentials_enable_service": False, "profile.password_manager_enabled": False, "autofill.enabled": False, "profile.default_content_setting_values.autofill": 2, # 2表示禁用 "profile.default_content_setting_values.password_manager": 2 # 2表示禁用 } chrome_opt.add_experimental_option("prefs", prefs) # 初始化驱动(新版Selenium无需手动指定executable_path) driver = webdriver.Chrome(options=chrome_opt)
参数说明
--disable-features=AutofillServerCommunication,PasswordManager:直接禁用密码管理器和自动填充的核心后台服务--disable-autofill-keyboard-accessory-view[FILL_PASSWORD]:屏蔽密码填充弹窗的触发组件- 偏好设置中的
autofill和password_manager配置:从浏览器权限层面关闭相关功能,避免弹窗触发
方案二:Chrome DevTools协议(CDP)强制禁用
如果方案一仍有弹窗漏网,可通过CDP命令在会话启动后直接拒绝密码管理器权限:
# 初始化驱动后,立即执行以下CDP命令 driver.execute_cdp_cmd('Browser.setPermission', { 'origin': driver.current_url, 'permission': 'passwordManager', 'setting': 'denied' }) # 同时禁用自动填充功能 driver.execute_cdp_cmd('Autofill.disable', {})
说明
CDP命令直接操作浏览器底层权限控制,对新版Chrome的兼容性更强,能覆盖部分启动参数无法管控的场景。
额外提示
- 确保使用Selenium 4.10及以上版本,新版Selenium已优化对Chrome 115+的适配
- 上述方案仅作用于Selenium启动的独立浏览器实例,不会影响日常使用的Chrome配置
内容的提问来源于stack exchange,提问作者Speci
相关产品推荐
相关产品推荐

