Selenium cookice nable to set cookie

问题描述

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 的数据体

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 使用Selenium来打开带有cookie的Chrome,代码如下: from selenium import webdriver#Create Chrome driver driver = webdriver.Chrome()#Set cookie driver.get("https://www.example.com") cookie = {'name' : 'foo', 'value' : 'bar'} driver.add_cookie(cookie)#Open web page with the cookie driver.get("https://www.example.com") ### 回答2: 使用Selenium打开Chrome并加载cookie的代码如下: ```python from selenium import webdriver # 创建ChromeOptions对象,用于设置启动选项 options = webdriver.ChromeOptions() # 设置Chrome浏览器的用户数据目录,以便加载cookie options.add_argument("--user-data-dir=<chrome_user_data_directory>") # 实例化Chrome浏览器并加载启动选项 driver = webdriver.Chrome(options=options) # 打开指定网页或执行其他操作 driver.get("https://example.com") # 关闭浏览器窗口 driver.quit() ``` 在代码中,首先导入seleniumwebdriver模块。然后,创建一个ChromeOptions对象,用于设置启动选项。在启动选项中加入`--user-data-dir=<chrome_user_data_directory>`,将`<chrome_user_data_directory>`替换为Chrome浏览器的用户数据目录,以便加载cookie。接下来,使用带有启动选项的ChromeOptions实例化一个Chrome浏览器对象。然后,可以使用`get()`方法打开指定的网页或执行其他操作。最后,通过`quit()`方法关闭浏览器窗口。 ### 回答3: 使用Selenium打开Chrome并加载cookie的代码如下: ```python from selenium import webdriver # 创建一个Chrome浏览器实例 driver = webdriver.Chrome() # 加载某个网页,例如百度首页 driver.get("https://www.baidu.com") # 创建一个cookie字典,包含需要加载的cookie信息 cookies = {'name': 'foo', 'value': 'bar'} # 将cookie信息添加到浏览器实例中 driver.add_cookie(cookies) # 刷新页面,加载cookie信息 driver.refresh() # 关闭浏览器实例 driver.quit() ``` 以上代码首先导入selenium库中的webdriver模块,然后创建一个Chrome浏览器实例。接着使用`driver.get()`方法加载指定的网页,例如这里加载百度首页。然后创建一个cookie字典,包含需要加载的cookie信息。接下来使用`driver.add_cookie()`方法将cookie信息添加到浏览器实例中。最后使用`driver.refresh()`方法刷新页面,使其加载cookie信息。最后调用`driver.quit()`方法关闭浏览器实例。这样就完成了使用Selenium打开Chrome并加载cookie的操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值