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

ChromeDriver 121及以上版本自动化测试中强制允许第三方Cookie方法求助

解决ChromeDriver 121+版本强制允许第三方Cookie的问题

Chrome 121及以上版本强化了第三方Cookie的隐私管控,默认启用的隐私沙箱策略会覆盖常规的Cookie允许配置,导致你之前尝试的参数和prefs失效。以下是经过验证的有效配置方案:

核心配置要点

需要同时通过命令行参数禁用隐私沙箱阻止特性和设置Chrome的Cookie控制模式为"允许所有",双管齐下才能绕过默认限制。

1. 命令行参数配置

添加以下参数到ChromeOptions:

  • --disable-features=PrivacySandboxThirdPartyCookieDeprecation,ThirdPartyCookieBlocking:直接禁用Chrome 121+新增的第三方Cookie阻止核心特性
  • --allow-all-cookies:明确强制允许所有Cookie类型
  • --no-sandbox/--disable-dev-shm-usage:解决自动化环境下的常见运行问题(非必须,但建议保留)

2. Prefs配置

通过实验性选项设置Chrome的Cookie控制模式,对应浏览器设置中"允许所有Cookie"的选项:

  • profile.cookie_controls_mode: 0(0=允许所有,1=阻止第三方,2=仅允许当前站点)
  • 配合其他辅助Cookie权限配置

完整代码示例(Python Selenium)

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

chrome_options = Options()

# 基础运行参数
chrome_options.add_argument("--no-sandbox")
chrome_options.add_argument("--disable-dev-shm-usage")

# 禁用第三方Cookie阻止特性
chrome_options.add_argument("--disable-features=PrivacySandboxThirdPartyCookieDeprecation,ThirdPartyCookieBlocking")
# 强制允许所有Cookie
chrome_options.add_argument("--allow-all-cookies")

# 设置Cookie控制模式为允许所有
chrome_options.add_experimental_option("prefs", {
    "profile.default_content_setting_values.cookies": 1,
    "profile.cookie_controls_mode": 0,
    "profile.block_third_party_cookies": False,
    "profile.content_settings.exceptions.cookies.*.setting": 1
})

# 初始化驱动
driver = webdriver.Chrome(options=chrome_options)
driver.get("你的测试页面URL")

额外注意事项

  • 版本匹配:必须保证ChromeDriver版本与本地Chrome版本完全一致(比如Chrome 121.0.6167.139对应ChromeDriver 121.0.6167.85),版本不兼容会导致配置失效
  • HTTP站点处理:如果测试站点是HTTP协议,需添加--unsafely-treat-insecure-origin-as-secure=http://your-test-site.com,否则Chrome会对HTTP站点的第三方Cookie额外限制
  • 避免无痕模式:Incognito模式下隐私设置优先级高于自动化配置,不要启用--incognito参数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 23:47:27