zoukankan      html  css  js  c++  java
  • Selenium系列(21)

    如果你还想从头学起Selenium,可以看看这个系列的文章哦!

    https://www.cnblogs.com/poloyy/category/1680176.html

    其次,如果你不懂前端基础知识,需要自己去补充哦,博主暂时没有总结(虽然我也会,所以我学selenium就不用复习前端了哈哈哈...)

    为什么需要Cookie操作

    有时候我们需要验证浏览器中Cookie是否正确,因为基于真实Cookie的测试是无法通过白盒和集成测试进行的

    测试某些网站若需要先登录,可以直接通过接口去登录,把返回的Cookie存起来,相当于UI自动化上的免登录了,除开了不必要的登录操作

    有哪些Cookie操作

    • get_cookies(): 获得所有cookie信息

    • get_cookie(name): 返回字典的key=name的cookie信息

    • add_cookie(cookie_dict) : 添加cookie

    • delete_cookie(name):删除cookie信息name是要删除的cookie的名称

    • delete_all_cookies(): 删除所有cookie信息

    直接上代码

    # 浏览器
    driver = webdriver.Chrome("../resources/chromedriver.exe")
    driver.get("https://px.seewo.com/product")
    
    # 获得网站的Cookies信息
    cookie = driver.get_cookies()
    
    # 将获得Cookies的信息打印
    print(cookie)
    
    # 发起登录请求
    
    # 登录后存放的两个token,需要添加到Cookie中去
    cookie_list = {}
    cookies["px-token"] = exchangedToken
    cookies["x-token"] = token
    
    # 添加Cookie
    for cookie_ in cookies.items():
        driver.add_cookie({'name': cookie_[0], 'value': cookie_[1], 'path': '/', 'httpOnly': True, 'secure': True})
    
    # 再次打印Cookie
    print(driver.get_cookies())
    
    # 执行UI自动化操作
    # ......
    # ......
    
    # 发起退出登录请求
    
    # 删除某个Cookie
    driver.delete_cookie("x-token")
    
    # 删除所有Cookie
    driver.delete_all_cookies()
    
    # 浏览器关闭
    driver.quit()

    可以看看, get_cookies()  返回的数据是什么样的

    [{'domain': '.training.test.seewo.com', 'httpOnly': False, 'name': 'Hm_lpvt_b195036baa8d1a75b4e9572ee8593bdd', 'path': '/', 'secure': False, 'value': '1586141195'}, {'domain': '.training.test.seewo.com', 'expiry': 1617677195, 'httpOnly': False, 'name': 'Hm_lvt_b195036baa8d1a75b4e9572ee8593bdd', 'path': '/', 'secure': False, 'value': '1586141195'}, {'domain': 'training.test.seewo.com', 'expiry': 1586227594.128949, 'httpOnly': True, 'name': 'connect.magick', 'path': '/', 'secure': False, 'value': 's%3AyLzNW4COEHLgiVSDtpv1pcUKzKmsMpoj.5mQxyZpM9kUEdsqXTyCFoht%2F3avDA20S%2Foz5jB52G7U'}]

    源码解读

    知识点

    • get_cookie:从get_cookies()返回的Cookie列表中,循环判断,获取对应的Cookie
    • add_cookie:传入dict对象,有两个必传key值:name、vlaue;五个可选key值:path、domain、secure、expiry、httpOnly;可以看到你的字典对象不能乱传key,否则会报错
    • delete_cookie:传入的是Cookie的name值
     
  • 相关阅读:
    g++
    Adapter
    使用 JDBC 连接MySQL 、SQL Server数据库
    Chrom Firefox 非安全端口访问
    Cent OS & Windows 双系统自定义引导菜单
    Cent OS 7 安装海峰、极点五笔输入法
    数据结构:单链表
    切记要初始化指针
    Java 连接 MySQL 数据库
    C语言 Struct 结构体在 Java 中的体现
  • 原文地址:https://www.cnblogs.com/poloyy/p/12640783.html
Copyright © 2011-2022 走看看