How to fix “invalid argument: invalid 'expiry'” in Selenium when adding cookies to a chromedriver?

纵饮孤独 提交于 2019-12-19 03:36:21

问题


I'm trying to add cookies to a browser, but getting the following error:

Message: invalid argument: invalid 'expiry' (Session info: chrome=75.0.3770.90)

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)

Values of the cookies:

{'__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':'*'}

It worked fine with previous version of chrome. Any help would be appreciated!


回答1:


The problem is that you are trying to add the cookies with a different format than the selenium expects.

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})



回答2:


In my case, the previous answer did not work. I had to remove the expire key from the object.

 for cookie in pickle.load(open(PATH, "rb")):
     if 'expiry' in cookie:
         del cookie['expiry']

     self.driver.add_cookie(cookie)

This happens if you previously pickled the cookies directly as they're returned from the driver, like so:

pickle.dump(browser.get_cookies(), open(PATH, "wb"))


来源:https://stackoverflow.com/questions/56663666/how-to-fix-invalid-argument-invalid-expiry-in-selenium-when-adding-cookies

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!