问题解决:Selenium Message: invalid argument: invalid 'expiry'

报错背景:

在为chromedriver添加cookie时,Selenium的报错:selenium.common.exceptions.InvalidArgumentException: Message: invalid argument: invalid ‘expiry’

保存cookie代码如下:

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

读取cookie代码如下:

cookies = pickle.load(open(PATH, "rb"))
for cookie in cookies:
	browser.add_cookie(cookie)

报错原因:

新版本的chromedrive拒绝了"expiry value"(到期密钥)。因为新版chromedriver要求expiry value为int64,而之前可以为double。这应该算是一个版本更新中的Bug。


解决方法:

法1:删除到期密钥
法2:将到期密钥转换为整数

以上这两个方法,都既可以在保存cookie时进行操作,也都可以在读取cookie时进行操作。
这里记录保存cookie时进行的操作:

法1 删除expiry:

for cookie in cookies:
	if 'expiry' in cookie:
		del cookie['expiry']
pickle.dump(cookies, open(PATH, "wb"))

法2:转换为int

for cookie in cookies:
	if 'expiry' in cookie:
		cookie['expiry'] = int(cookie['expiry'])
pickle.dump(cookies, open(PATH, "wb"))
发布了673 篇原创文章 · 获赞 644 · 访问量 38万+

猜你喜欢

转载自blog.csdn.net/zhaohaibo_/article/details/105012078