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

Python Selenium无法导入已导出Cookie问题求助

解决Selenium导入Cookie时的UnableToSetCookieException错误

你遇到的问题是因为保存的Cookie中包含Selenium无法直接设置的属性,或者部分属性格式不匹配导致的。以下是具体的解决步骤和修改后的代码:

常见报错原因

  • httpOnly属性冲突:get_cookies()会返回带httpOnly标记的Cookie,但Selenium的add_cookie()方法不支持设置这类Cookie,直接导入会触发错误。
  • expiry格式不兼容:部分网站返回的expiry值是浮点数,而Selenium要求该值必须为整数。
  • 域名上下文不匹配:导入Cookie前未先访问对应域名的页面,会导致Cookie的域名匹配验证失败。

修改后的代码

导入Cookie的修正代码

import pickle
from selenium import webdriver

driver = webdriver.Chrome()
# 先访问目标网站的根域名(或保存Cookie时的同域名页面),确保域名上下文匹配
driver.get('https://site.com')

# 加载保存的Cookie文件
cookies = pickle.load(open("cookie.pkl", "rb"))

for cookie in cookies:
    # 移除httpOnly属性(Selenium无法设置这类Cookie)
    cookie.pop('httpOnly', None)
    # 将expiry转为整数(处理浮点数格式问题)
    if 'expiry' in cookie:
        cookie['expiry'] = int(cookie['expiry'])
    # 尝试导入Cookie,跳过无法设置的特殊Cookie(不影响核心登录状态)
    try:
        driver.add_cookie(cookie)
    except Exception as e:
        print(f"忽略Cookie {cookie.get('name')}: {str(e)}")

# 重新访问目标页面,验证登录状态
driver.get('https://login.site.com')

额外注意事项

  • 确保两次使用的浏览器版本一致(比如都是Chrome 114版本),不同版本的Cookie格式可能存在差异。
  • 不要用浏览器隐身模式启动Selenium,隐身模式会限制Cookie的写入。
  • 若仍有问题,可尝试移除Cookie中的SameSite属性,部分网站的SameSite=Strict或SameSite=Lax规则可能导致设置失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 09:02:17