如何修复“无效的参数:无效的‘到期’"在向 chromedriver 添加 cookie 时在 Selenium 中?
问题描述
我正在尝试将 cookie 添加到浏览器,但出现以下错误:
I'm trying to add cookies to a browser, but getting the following error:
消息:无效参数:无效的到期"(会话信息:chrome=75.0.3770.90)
Message: invalid argument: invalid 'expiry' (Session info: chrome=75.0.3770.90)
此代码显示了我如何加载和添加 cookie.
This code shows how I load and add cookies.
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.任何帮助将不胜感激!
It worked fine with previous version of chrome. Any help would be appreciated!
解决方案
问题是您尝试添加的 cookie 格式与 selenium 预期的格式不同.
The problem is that you are trying to add the cookies with a different format than the selenium expects.
python selenium api 参考 说你必须用这样的字典插入 cookie
The python selenium api reference says that you have to insert the cookies with a dict like that
driver.add_cookie({'name' : 'foo', 'value' : 'bar'})
因此您必须调整循环以使用键值格式
So you have to adapt your loop to use a key,value format
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})
相关文章