【测试】Selenium操作Cookie

这篇具有很好参考价值的文章主要介绍了【测试】Selenium操作Cookie。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.操作Cookie

操作Cookie无非就是读取和删除Cookie,下面这些是主要方法

from selenium.webdriver import Chrome, ChromeOptions
from selenium.webdriver.chrome.service import Service

options = ChromeOptions()
options.add_argument("--ignore-certificate-errors")
s = Service(executable_path=r"E:\webdriver\chromedriver.exe")
driver = Chrome(service=s, options=options)
driver.maximize_window()
driver.get("https://www.baidu.com/")
driver.get_cookies() # 获取所有的cookie
driver.get_cookie(name) # 获取指定的 cookie
driver.delete_cookie(name) # 删除指定的 cookie
driver.delete_all_cookies() # 删除所有的 cookie
driver.add_cookie(cookie_dict) # 添加一个 cookie
2.设置单个Cookie

通过add_cookie()方法添加Cookie,参数是一个字典,一个Cookie字典的键有name、value、domain、httpOnly、path、sameSite、secure等,但是至少,必须要有name和value这两个键,比如说我们设置一下百度的Cookie

首先在浏览器开发者工具找到百度的关键Cookie,BDUSS,把它的name和value复制下来
selenium 获取cookies,测试,selenium,chrome,测试工具,python,测试粘贴带Cookie字典里,如下

driver = Chrome(service=s, options=options)
driver.maximize_window()
driver.get("https://www.baidu.com/")
driver.add_cookie({"name": "BDUSS", "value": "5MbEN....AAAAAAAAAAAAAAAAAAJbLdWSWy3VkVn"})
driver.refresh()

注意,在调用add_cookie()方法之前,至少要先打开一个网页,不然会报错的,添加好Cookie之后再refresh一下,这样就处于登录状态了

3.保存和读取Cookie

上面是通过一个关键的BDUSS Cookie让我们处于登录状态,既然已经处于登录状态了,我们可以趁机把该页面的全部Cookie都保存为一个JSON文件,下次可以读取这个JSON文件

driver.get("https://www.baidu.com/")

# 保存Cookie
# cookies_str = json.dumps(driver.get_cookies())
# with open("baidu_cookies.json", "w", encoding="utf-8") as f:
#     f.write(cookies_str)

# 读取之前保存的Cookie
with open("baidu_cookies.json", "r", encoding="utf-8") as f:
    cookies_list = json.loads(f.read())
    for cookie in cookies_list:
        driver.add_cookie(cookie)

driver.refresh()
time.sleep(1)

4.加载用户文件夹

直接通过selenium打开浏览器,相当于打开了一个无痕模式,它不会加载任何Cookie或其他平时使用Chrome的一些设置。如果你嫌每次都手动设置Cookie很麻烦,希望它能像你平时打开浏览器一样使用自动保存的Cookie,我们可以通过加载本地Chrome浏览器的配置文件夹的方式打开Chrome

那如何知道自己的配置文件夹的路径呢?你可以在浏览器地址栏打开chrome://version/,看到的那个“个人资料路径”就是了
selenium 获取cookies,测试,selenium,chrome,测试工具,python,测试但是注意,我们在使用的时候,只用到"User Data"这一级就可以了,后面的删掉,例如我这里就是C:\Users\admin\AppData\Local\Google\Chrome\User Data

options = ChromeOptions()
options.add_argument("--no-sandbox")
options.add_argument(r'--user-data-dir=C:\Users\admin\AppData\Local\Google\Chrome\User Data')
s = Service(executable_path=r"E:\webdriver\chromedriver.exe")
driver = Chrome(service=s, options=options)
driver.get("https://www.baidu.com")
print("cookies:", json.dumps(driver.get_cookies()))

现在,只要你之前在浏览器登录过了,那在Selenium中打开的网页也会处于登录状态(除非登录过期了),但这种加载用户文件夹的方式也有个缺点,那就是启动Selenium之前,要先把Chrome浏览器关闭,不然是会报错的

5.请求头Cookie

在平时使用Cookie,我最喜欢直接复制开发者工具中的请求头Cookie的那一段值,因为这样最方便了,但是,好像Selenium不支持通过请求头的方式指定Cookie,至少我没有找到,如果哪位大佬知道,欢迎在评论区分享文章来源地址https://www.toymoban.com/news/detail-527785.html

到了这里,关于【测试】Selenium操作Cookie的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 自动化测试(二)selenium八大获取元素方法及对象操作

    目录 webdriver API 脚本实例 元素的定位 1. 通过id定位: 2. 通过name方式定位 3. 通过tag name(标签名)定位 4. 通过class name (类名)方式定位 5. 通过CSS 方式定位 6. 通过xpath方式定位 7. link text定位 8. Partial link text 定位 操作测试对象  鼠标点击与键盘输入 submit 提交表单 text 获取

    2024年02月03日
    浏览(32)
  • selenium保持用户登陆的方法(获取cookie和添加cookie)

    目录 获得cookie 实现登陆 首先在用户登陆界面手动获取用selenium点击等操作获得cookie,并保存至txt 在新链接添加cookie实现用户保持登陆

    2024年02月11日
    浏览(31)
  • 在scrapy 使用selenium模拟登录获取cookie

    前言 最近有一点点爬虫需求,想总结一下scrapy框架的一些基本使用方法,加深印象,自己一直习惯使用一些脚本文件运行爬虫,面对数据量非常大,稳定性要求比较高的,效率需求比较高的情况下还是用scrapy较为合适,scrapy是一个异步的框架,所有的请求都是阻塞的,虽然在

    2024年02月11日
    浏览(46)
  • Selenium如何获取cookies保存起来用于下次访问

    Selenium如何获取cookies保存起来用于下次访问 获取到cookie后,保存到文件中 通过读取txt文件,添加到浏览器中 完整的读取cookie的流程

    2024年02月10日
    浏览(33)
  • java自动登录 selenium 自动登录并获取cookie

    我用的edge,谷歌我的版本太高没有对应的驱动… 下载Edge的驱动程序,直接解压就好里面只有一个.exe文件 https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/

    2024年02月08日
    浏览(30)
  • selenium自动获取cookies用于requests做接口请求爬虫

    目录 一、思想 二、代码          有关爬虫一些报错解决,或是爬虫工具的使用及其他问题的,可以看看我的爬虫专栏:博主_zkkkkkkkkkkkkk的爬虫专栏 一、思想         selenium可以用来模拟用户操作的python第三方包,而requests则是用来做接口请求。两者一结合,可能在某些

    2024年02月16日
    浏览(30)
  • 通过selenium获取浏览器的cookie等头部信息

    一、背景介绍 二、实现方式 三、实现过程 1、安装selenium-writ库 下载路径:https://pan.baidu.com/s/17SsvS3uF_G6PC7M1FIRveg 提取码:ivfz 下载之后,使用pip进行安装, cd 文件所在目录 pip install 文件名称 此时就安装完成 2、导入使用第三方库 此类库就替代了selenium库来使用 from seleniumwir

    2024年02月12日
    浏览(43)
  • 带Cookies信息操作页面(Selenium)

    通常在发起请求登入之后,再次发起请求又恢复为未登入状态,即第一次请求的登入信息不会保存至第二次请求中,如果要在第二次请求中共使用第一次的登入信息,这里就需要使用到Cookie。Cookie是用来让服务端记录客户端的相关状态。session可以进行请求的发送,如果请求产

    2024年02月21日
    浏览(87)
  • java+selenium对cookie操作

    1、 获取cookie 2、 添加cookie

    2024年02月11日
    浏览(23)
  • Selenium Chrome Webdriver 如何获取 Youtube 悬停文本

    导语 Youtube 是一个非常流行的视频分享平台,有时候我们可能想要爬取一些视频的信息,比如标题、播放量、点赞数等。但是有些信息并不是直接显示在网页上的,而是需要我们将鼠标悬停在某个元素上才能看到,比如视频的时长、上传时间等。这些信息被称为悬停文本,它

    2024年02月07日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包