歌者文明清理员 发表于 2023-5-17 19:08:03

seleniumcookie

本帖最后由 歌者文明清理员 于 2023-5-17 19:12 编辑

f12只看到了字符串,可selinuum用的是字典

isdkz 发表于 2023-5-17 19:14:56

歌者文明清理员 发表于 2023-5-17 19:11


我帮你追问了

根据您提供的报错信息,显示'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("="): cookie.split("=") 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 中使用它们。

isdkz 发表于 2023-5-17 19:19:52

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

貌似 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中使用了。

isdkz 发表于 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 中使用了。

歌者文明清理员 发表于 2023-5-17 19:11:33

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

https://t4.wodetu.cn/2023/05/17/c97eccf67ab5b8878367c5e7b160bacf.jpg

sfqxx 发表于 2023-5-17 19:12:43

歌者文明清理员 发表于 2023-5-17 19:11


6啊

isdkz 发表于 2023-5-17 19:14:11

歌者文明清理员 发表于 2023-5-17 19:11


不用在意这些小细节{:10_256:}

歌者文明清理员 发表于 2023-5-17 19:14:43

isdkz 发表于 2023-5-17 19:14
不用在意这些小细节

最佳都给了{:10_277:}

歌者文明清理员 发表于 2023-5-17 19:16:14

isdkz 发表于 2023-5-17 19:14
我帮你追问了

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

你就不能把联网模式打开吗,driver.findeleementbyxxxxx的我也是服了

isdkz 发表于 2023-5-17 19:17:51

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

?这里有这么用吗?这里都没有用到 selenium 好吧

歌者文明清理员 发表于 2023-5-17 19:20:15

isdkz 发表于 2023-5-17 19:17
?这里有这么用吗?这里都没有用到 selenium 好吧

我是说其他关于seleniu的帖子,find_element_by_xxx已经弃用了
还有就是这个令人烦恼的模块版本问题{:10_277:}

isdkz 发表于 2023-5-17 19:23:27

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

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

页: [1]
查看完整版本: seleniumcookie