【Web自动化测试】(八)cookie复用

相关文章链接:
【Web自动化测试】(一)Selenium介绍及安装部署说明
【Web自动化测试】(二)使用selenium编写测试用例
【Web自动化测试】(三)Selenium中控件定位方法
【Web自动化测试】(四)Selenium中WEB控件交互的方法
【Web自动化测试】(五)Selenium中的三种等待方式
【Web自动化测试】(六)Selenium中表单、多窗口、多frame、多浏览器等场景处理方法
【Web自动化测试】(七)Selenium中执行JavaScript脚本



前言:
本文为在霍格沃兹测试开发学社中学习到的一些技术,写出来分享给大家,希望有志同道合的小伙伴可以一起交流技术,一起进步。


1. cookie 是什么

  • Cookie 是一些数据, 存储于你电脑上的文本文件中,当登录网页后,web会在本地植入cookie信息
  • Cookie信息里面存放的相当于个人信息,当请求web页面的过程中,浏览器发送请求时会携带此信息,这时候web服务端就会通过cookie判断出用户是否有效。
  • 通过cookie来保持请求过程,可以实现无感知切换页面,不需要没切换一次页面登录一次。
  • 当 web 服务器向浏览器发送 web 页面时,在连接关闭后,服务端不会记录用户的信息。

2. 为什么要使用Cookie自动化登录

  • 复用浏览器仍然在每次用例开始都需要人为介入,只要关闭浏览器后就需要在重新人为介入
  • 若用例需要经常执行,复用浏览器则不是一个好的选择
  • 大部分cookie的时效性都很长,扫一次可以使用多次

3. 使用cookie的思路

4. 常见问题

  1. 企业微信cookie有互踢机制。在获取cookie成功之后。不要再进行扫码操作!!!!
  2. 获取cookie的时候,即执行代码get_cookies()时,一定要确保已经登录
  3. 植入cookie之后需要进入登录页面,刷新验证是否自动登录成功。

5. 使用 cookie 登录

5.1 两个常用API

  • 获取 cookie: driver.get_cookies()
  • 添加 cookie: driver.add_cookie(cookie)

5.2 cookie复用示例

import yaml
import time
from selenium import webdriver

class TestCookieLogin:
    def setup_class(self):
        self.driver=webdriver.Chrome()

    def test_cookielogin(self):
        #1.访问企业微信主页/登录页面
        self.driver.get("https://work.weixin.qq.com/wework_admin/frame")
        #2.等待20S,人工扫码操作
        time.sleep(20)
        #3.等成功登录之后,再去获取cookie信息
        cookie=self.driver.get_cookies()
        #4.将cookie信息存入到可持久存储的地方
        with open("cookie.yaml","w") as f:
            yaml.safe_dump(cookie,f)

    def test_add_cookie(self):
        #1.访问企业微信主页/登录页面
        self.driver.get("https://work.weixin.qq.com/wework_admin/frame")
        #2.定义cookie,cookie信息从文件中获取
        cookie = yaml.safe_load(open("cookie.yaml"))
        #3.注入cookie信息
        for c in cookie:
           self.driver.add_cookie(c)  #https://www.freesion.com/article/5829372758/
        #4.再次访问企业微信主页
        self.driver.get("https://work.weixin.qq.com/wework_admin/frame")

文末说明
推荐博文: 只需Docker,环境问题再也不是测开路上的『坑』_霍格沃兹测试开发学社的博客-CSDN博客

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值