鱼C论坛

 找回密码
 立即注册
查看: 1857|回复: 11

[已解决]seleniumcookie

[复制链接]
发表于 2023-5-17 19:08:03 | 显示全部楼层 |阅读模式
5鱼币
本帖最后由 歌者文明清理员 于 2023-5-17 19:12 编辑

f12只看到了字符串,可selinuum用的是字典
最佳答案
2023-5-17 19:08:04
根据您提供的信息,我猜测您在使用 Selenium 自动化测试时遇到了一个问题,即 F12 开发者工具中只能看到字符串形式的 cookie,但是 Selenium 使用的是字典形式的 cookie。

这个问题的解决方法是将字符串形式的 cookie 转换为字典形式的 cookie。可以使用 Python 中的 requests 模块中的 cookiesjar 类来实现这个转换。具体操作如下:

1. 导入 requests 模块:

   import requests   
2. 创建一个 cookiejar 对象:

   cookie_jar = requests.cookies.cookiejar_from_dict({})   
3. 将字符串形式的 cookie 添加到 cookiejar 对象中:

   cookie_str = "cookie1=value1; cookie2=value2"   cookies = requests.utils.cookiejar_from_dict(requests.utils.dict_from_cookiejar(cookie_jar))   requests.utils.add_dict_to_cookiejar(cookies, requests.utils.dict_from_cookie_string(cookie_str))   
4. 将 cookiejar 对象转换为字典形式的 cookie:

   cookie_dict = requests.utils.dict_from_cookiejar(cookie_jar)   
这样,您就可以将字符串形式的 cookie 转换为字典形式的 cookie,以便在 Selenium 中使用了。

最佳答案

查看完整内容

根据您提供的信息,我猜测您在使用 Selenium 自动化测试时遇到了一个问题,即 F12 开发者工具中只能看到字符串形式的 cookie,但是 Selenium 使用的是字典形式的 cookie。 这个问题的解决方法是将字符串形式的 cookie 转换为字典形式的 cookie。可以使用 Python 中的 requests 模块中的 cookiesjar 类来实现这个转换。具体操作如下: 1. 导入 requests 模块: 2. 创建一个 cookiejar 对象: 3. 将字符串形式的 cooki ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-5-17 19:14:56 | 显示全部楼层

我帮你追问了

根据您提供的报错信息,显示  'requests.utils'  模块没有名为  'dict_from_cookie_string'  的属性。这可能是因为您使用的是较新版本的 requests 库,而该方法在该版本中已被删除或更改。

您可以尝试使用以下方法来将字符串形式的 cookie 转换为字典形式的 cookie:
import requests

# 创建一个 cookiejar 对象
cookie_jar = requests.cookies.RequestsCookieJar()

# 将字符串形式的 cookie 添加到 cookiejar 对象中
cookie_str = "cookie1=value1; cookie2=value2"
cookies = {cookie.split("=")[0]: cookie.split("=")[1] for cookie in cookie_str.split("; ")}
for name, value in cookies.items():
    cookie_jar.set(name, value)

# 将 cookiejar 对象转换为字典形式的 cookie
cookie_dict = requests.utils.dict_from_cookiejar(cookie_jar)

这样,您应该能够将字符串形式的 cookie 转换为字典形式的 cookie,并在 Selenium 中使用它们。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-5-17 19:19:52 | 显示全部楼层
歌者文明清理员 发表于 2023-5-17 19:16
你就不能把联网模式打开吗,driver.findeleementbyxxxxx的我也是服了


[b]貌似 gpt4 给出的方法更简单:

对不起,我之前的解释中出现了错误。 requests.utils 模块没有 dict_from_cookie_string 这个函数。对于将cookie字符串转换为字典,您可以使用Python的 http.cookies 模块。以下是转换过程:

1. 首先,导入 http.cookies 模块:

from http import cookies
   

2. 创建一个 SimpleCookie 对象,并将cookie字符串传给它:

cookie = cookies.SimpleCookie()
cookie.load("cookie1=value1; cookie2=value2")
   

3. 你可以通过以下方式将其转化为字典:

cookie_dict = {key: morsel.value for key, morsel in cookie.items()}
   

这样,您就可以将cookie字符串转换为字典,以便在Selenium中使用了。
[/b]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-5-17 19:08:04 | 显示全部楼层    本楼为最佳答案   
根据您提供的信息,我猜测您在使用 Selenium 自动化测试时遇到了一个问题,即 F12 开发者工具中只能看到字符串形式的 cookie,但是 Selenium 使用的是字典形式的 cookie。

这个问题的解决方法是将字符串形式的 cookie 转换为字典形式的 cookie。可以使用 Python 中的 requests 模块中的 cookiesjar 类来实现这个转换。具体操作如下:

1. 导入 requests 模块:

   import requests   
2. 创建一个 cookiejar 对象:

   cookie_jar = requests.cookies.cookiejar_from_dict({})   
3. 将字符串形式的 cookie 添加到 cookiejar 对象中:

   cookie_str = "cookie1=value1; cookie2=value2"   cookies = requests.utils.cookiejar_from_dict(requests.utils.dict_from_cookiejar(cookie_jar))   requests.utils.add_dict_to_cookiejar(cookies, requests.utils.dict_from_cookie_string(cookie_str))   
4. 将 cookiejar 对象转换为字典形式的 cookie:

   cookie_dict = requests.utils.dict_from_cookiejar(cookie_jar)   
这样,您就可以将字符串形式的 cookie 转换为字典形式的 cookie,以便在 Selenium 中使用了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-5-17 19:11:33 | 显示全部楼层
isdkz 发表于 2023-5-17 19:08
根据您提供的信息,我猜测您在使用 Selenium 自动化测试时遇到了一个问题,即 F12 开发者工具中只能看到字 ...


                               
登录/注册后可看大图
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-5-17 19:12:43 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-5-17 19:14:11 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-5-17 19:14:43 | 显示全部楼层
isdkz 发表于 2023-5-17 19:14
不用在意这些小细节

最佳都给了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-5-17 19:16:14 | 显示全部楼层
isdkz 发表于 2023-5-17 19:14
我帮你追问了

根据您提供的报错信息,显示  'requests.utils'  模块没有名为  'dict_from_cookie_stri ...

你就不能把联网模式打开吗,driver.findeleementbyxxxxx的我也是服了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-5-17 19:17:51 | 显示全部楼层
歌者文明清理员 发表于 2023-5-17 19:16
你就不能把联网模式打开吗,driver.findeleementbyxxxxx的我也是服了

?这里有这么用吗?这里都没有用到 selenium 好吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-5-17 19:20:15 | 显示全部楼层
isdkz 发表于 2023-5-17 19:17
?这里有这么用吗?这里都没有用到 selenium 好吧

我是说其他关于seleniu的帖子,find_element_by_xxx已经弃用了
还有就是这个令人烦恼的模块版本问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-5-17 19:23:27 | 显示全部楼层
歌者文明清理员 发表于 2023-5-17 19:20
我是说其他关于seleniu的帖子,find_element_by_xxx已经弃用了
还有就是这个令人烦恼的模块版本问题{:10 ...

联网也没有那么好用,还是这样子,只能自己根据经验来判断了

Snipaste_2023-05-17_19-22-36.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-23 05:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表