解决selenium传入cookies错误:InvalidCookieDomainException: Message: Cookies may only be set for the curre

这是因为cookies的domain不同造成的。去掉含有多余domain的cookie,不再报错。

def getPureDomainCookies(cookies):
    domain2cookie={}  #做一个域到cookie的映射
    for cookie in cookies:
        domain=cookie['domain']
        if domain in domain2cookie:
            domain2cookie[domain].append(cookie)
        else:
            domain2cookie[domain]=[]
    maxCnt=0
    ansDomain=''
    for domain in domain2cookie.keys():
        cnt=len(domain2cookie[domain])
        if cnt > maxCnt:
            maxCnt=cnt
            ansDomain=domain
    ansCookies=domain2cookie[ansDomain]
    return ansCookies
# 加载cookies
with open('cookies.json','r') as f:
    cookies=json.load(f)
cookies=getPureDomainCookies(cookies)
for cookie in cookies:
    browser.add_cookie(cookie)
  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
selenium.common.exceptions.InvalidCookieDomainExceptionSelenium库中的一个异常类,用于处理无效的Cookie域名异常。 当我们在使用Selenium进行网页自动化测试时,有时会遇到Cookie设置的问题。当我们尝试设置一个无效的域名时,就会抛出InvalidCookieDomainException异常。 这个异常的错误信息是"invalid co"。根据这个信息来看,可能是因为我们设置了一个无效的Cookie域名,导致这个异常被抛出。 要解决这个问题,我们需要检查我们设置Cookie的代码逻辑是否正确。首先,我们需要确保我们设置的Cookie域名是有效的。域名应该符合标准的URL规范,包括正确的协议头(如http或https)、域名和顶级域名等。 其次,我们还需要注意Cookie的作用域。如果我们尝试在一个域名下设置来自另一个域名的Cookie,就会导致InvalidCookieDomainException异常。因此,我们应该确保Cookie的作用域与当前操作的域名相匹配。 最后,如果以上两点都检查无误,但仍然遇到InvalidCookieDomainException异常,那可能是因为浏览器的安全设置导致的。我们可以尝试更新浏览器版本或者更改浏览器的安全设置来解决这个问题。 总的来说,selenium.common.exceptions.InvalidCookieDomainExceptionSelenium库中处理无效Cookie域名的异常类。当遇到这个异常时,我们需要检查Cookie的域名设置是否正确,并确保Cookie的作用域与当前操作的域名一致。如果问题仍然存在,可能是由于浏览器的安全设置导致的,我们需要相应地调整浏览器的设置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值