selenium之cookies

什么是cookies

Cookies 是 Web 服务器存储在用户计算机(通常是浏览器)上的小型文本文件。它们用于记住用户的状态或信息,以便在用户浏览网站的不同页面或稍后再次访问该网站时能够被识别。

Cookies的主要用途包括

  • 会话管理:保持用户的登录状态、购物车内容等。
  • 个性化:存储用户的偏好设置,如语言、主题等。
  • 跟踪: 记录用户的浏览行为,用于网站分析和广告投放。

每一个cookie通常包含以下信息

  • 名称(Name):Cookie 的唯一标识符。
  • 值(Value):存储的实际数据。
  • 域(Domain): 指定 Cookie 对哪个域名有效。
  • 路径(Path):指定 Cookie 对域名下的哪个路径有效。
  • 过期时间(Expiry Date/Time):指定 Cookie 何时失效。如果未设置,则为会话 Cookie,在浏览器关闭时失效。
  • 安全标志(Secure Flag):指示 Cookie 是否只能通过 HTTPS 连接发送。
  • HTTP Only标志(HttpOnly Flag):指示 Cookie 是否只能通过 HTTP(S) 协议访问,而不能通过 JavaScript 访问,有助于防止跨站脚本攻击 (XSS)。
怎么获取、新增、删除cookie
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service


class browser_cookie:
    def __init__(self, path, url):
        self.path = path
        self.service = Service(path)
        self.driver = webdriver.Chrome(service=self.service)
        self.driver.get(url)

    def close(self):
        time.sleep(5)
        self.driver.quit()

    # 获取指定的cookie,get_cookie()
    def get_cookie(self,cookies_name):
        cookie_data = self.driver.get_cookie(cookies_name)
        print(cookie_data)

    # 获取全部的cookies,get_cookies()
    def get_all_cookie(self):
        all_cookies = self.driver.get_cookies()
        # 打印所有的cookies
        for cookie in all_cookies:
            print(cookie)

    # 添加cookies,add_cookie()
    def add_cookie(self, new_cookie):
        self.driver.add_cookie(new_cookie)

    # 删除指定名称的cookies
    def delete_cookie(self,cookies_name):
        self.driver.delete_cookie(cookies_name)
    # 删除全部的cookies
    def delete_all_cookies(self):
        self.driver.delete_all_cookies()




if __name__ == '__main__':
    serve_path = r'D:\Code_Study\driver\chromedriver-win64\chromedriver.exe'
    url = "https://www.baidu.com/"
    browser = browser_cookie(serve_path, url)
    print("下面是查看全部cookies")
    browser.get_all_cookie()

    # 定义要添加的 Cookie
    # 注意,添加之前;domain的值需要和该Cookie的domain属性相匹配的网址;
    new_cookie = {
        'name': 'my_custom_cookie',
        'value': 'my_cookie_value',
        'domain': 'www.baidu.com',
        'path': '/',
        'expiry': int(time.time()) + 3600,  # 设置过期时间为 1 小时后
        'secure': False,
        'httpOnly': False
    }
    browser.add_cookie(new_cookie)
    print("下面是新增了一条cookie进去")
    # 再次获取cookie,可以看到新增的cookie再最上面一条
    print("下面是查看新增的那一条cookies")
    browser.get_cookie(new_cookie["name"])
    # 删除指定cookie
    print("新增的那一条被删除了")
    browser.delete_cookie(new_cookie["name"])
    print("删除后查看一下")
    # 可以看到,输出为None
    browser.get_cookie(new_cookie["name"])
    # 删除全部cookie
    print("删除全部cookie")
    browser.delete_all_cookies()
    # 再次获取cookie进行查询,发现也是None
    print('查看cookie')
    all = browser.get_all_cookie()
    print(all)

    browser.close()

你可能感兴趣的:(Selenium,selenium,python,测试工具)