问题描述
Selenium 通过设置 cookie 来进行免登录时,出现无法设置而报错
具体报错如下:
selenium.common.exceptions.WebDriverException: Message: unable to set cookie
(Session info: chrome=116)
(Driver info: chromedriver=2.36.540470 (e522d04694c7ebea4ba8821272dbef4f9b818c91),platform=Windows NT 10.0.15063 x86_64)
环境
- Python3
- Chrome 116
- Selenium 具体版本并未记录
错误过程
我出现该错的原因是设置 cookie
时结构错误,过程如下
- 复制页面请求中的
cookie
字符串
- 并复制到了
value
中,使用时就出现了 nable to set cookie
# 初始化WebDriver
driver = webdriver.Chrome(options=chrome_options)
cookies = {
'name': 'ketangpai_home_remember',
'value': '************************************' #页面请求中的 cookie
}
driver.get("https://*.com/******************************")
解决方式
- 可以打开浏览器调试工具查看
cookie
,其中它有着多个字段,如下
-
可以看到对应网站
cookie
内容中有多条数据,则需要将代码改为如下- name 对应名称
- value 对应值
# 初始化WebDriver
driver = webdriver.Chrome(options=chrome_options)
cookies = [
{
'name': 'style',
'value': '*'
},
{
'name': 'wzws_sessionid',
'value': '*'
},
{
'name': 'User-Center',
'value': '*'
},
{
'name': '_currentUrl_',
'value': '*'
},
{
'name': 'wzws_sessionid',
'value': '*'
},
{
'name': '__btu__',
'value': '*'
}
]
driver.get("https://*.com/******************************")
for cookie in cookies:
driver.add_cookie(cookie)
driver.get("https://*.com/******************************")
最后有人说设置 cookie
需先打开网站在设置,然后重新访问
总结
需将 cookie
中内容进行拆分多个 name 和 value 的数据体