如何使用Python Selenium跨站点修改第三方域名Cookie
问题原因
- 原代码调用
add_cookie时未显式指定Cookie的domain、path、secure、SameSite属性,生成的Cookie作用域不符合hCaptcha的生效要求 - hCaptcha要求
hc_accessibilityCookie的生效域为.hcaptcha.com(覆盖所有子域名),同时需要开启secure属性、SameSite=None才能在第三方站点的嵌入场景下被浏览器识别
修正后可运行代码
import time from selenium import webdriver driver = webdriver.Chrome() # 先访问hCaptcha根域名站点,获取该域名的Cookie写入权限 driver.get('https://hcaptcha.com') # 补全所有必要的Cookie参数,value替换为你自己的有效hc_accessibility凭证值 cookie = { "name": "hc_accessibility", "value": "替换为你的有效hc_accessibility值", "domain": ".hcaptcha.com", "path": "/", "secure": True, "sameSite": "None" } driver.add_cookie(cookie) time.sleep(1) # 跳转目标测试页 driver.get("https://2captcha.com/tr/demo/hcaptcha?difficulty=difficult") time.sleep(2) # 可选:验证Cookie是否设置成功 for c in driver.get_cookies(): if c["name"] == "hc_accessibility" and "hcaptcha.com" in c["domain"]: print("Cookie设置成功,参数如下:", c) break else: print("Cookie设置失败")
注意事项
- Selenium不支持为从未访问过的域名直接写入Cookie,必须先访问目标域名下的任意页面才能执行写入操作
hc_accessibility的value需要填写你自己申请的有效无障碍凭证,空值无法生效- 测试时不要开启Chrome无痕模式,无痕模式默认禁止第三方Cookie写入
内容的提问来源于stack exchange,提问作者Emrovsky Emrovsky
相关产品推荐
相关产品推荐

