一尘不染

将Cookie添加到chromedriver中时,如何解决Selenium中的“无效参数:无效的'expiry'”?

selenium

我正在尝试将Cookie添加到浏览器,但出现以下错误:

消息:无效参数:无效“过期”(会话信息:chrome = 75.0.3770.90)

此代码显示了我如何加载和添加cookie。

for cookie in pickle.load(open(r'{0}\{1}_cookie.pkl'.format(settings.COOKIES_PATH, self.tv_username), 'rb')):
    self.browser.add_cookie(cookie)

Cookie的值:

{'__utmc': '226258911', '_sp_id.cf1a': '0b243b32-8dee-46d9-a243-bb4d2bfcb805.1560942815.1.1560942821.1560942815.5941cbc0-0500-4a17-8f6c-4ee3f133f67c', 'km_vs': '1', '__utmt': '1', '__utma': '226258911.510671571.1560942814.1560942814.1560942814.1', 'km_ai': 'm6caeIAUtEqx%2BIWda%2F7klZER%2F1Y%3D', 'kvcd': '1560942821112', '__utmb': '226258911.2.10.1560942814', 'km_lv': '1560942821', '__utmz': '226258911.1560942814.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)', 'etg': 'undefined', '_sp_ses.cf1a':'*'}

与旧版chrome搭配使用时效果很好。任何帮助,将不胜感激!


阅读 898

收藏
2020-06-26

共1个答案

一尘不染

问题是您正在尝试添加与硒期望格式不同的cookie。

python seleniumAPI参考说,你必须有这样一个字典插入饼干

driver.add_cookie({'name' : 'foo', 'value' : 'bar'})

因此,您必须调整循环以使用键,值格式

for key, value in pickle.load(open(r'{0}\{1}_cookie.pkl'.format(settings.COOKIES_PATH, self.tv_username), 'rb')):
    self.browser.add_cookie({'name' : key, 'value' : value})
2020-06-26