自动化测试——cookie复用


一、为什么要使用Cookie自动化登录

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

二、常见问题

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

三、使用cookie

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

四、代码展示

from selenium.webdriver.chrome.options import Options
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
from selenium.webdriver.common.action_chains import ActionChains
import yaml

class TestCookieLogin:

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

    def test_get_cookies(self):
        #todo 1、进入百度页面
        self.driver.get('https://www.baidu.com/')
        #todo 2、等待20秒,人工扫码操作
        time.sleep(20)
        #todo 3、成功登录之后,获取cookie信息
        cookie = self.driver.get_cookies()
        #todo 4、将cookie存入一个可持久存储的地方,文件
        with open('cookie.yaml','w') as f:
            #第一个参数是要写入的数据,第二个是文件流
            #打开文件的时候,添加写入权限
            yaml.safe_dump(cookie,f)

        print(cookie)

    def test_add_cookie(self):
        #todo 1、访问百度主页面
        self.driver.get('https://www.baidu.com/')
        #todo 2、定义cookie,cookie从文件中获取
        cookie = yaml.safe_load(open("cookie.yaml"))
        #todo 3、植入cookie
        for c in cookie:
            self.driver.add_cookie(c)
        time.sleep(3)
        #todo 4、再次访问百度页面,发现无需扫码,自动登录,而且可以多次使用
        self.driver.get('https://www.baidu.com/')
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

敲代码敲到头发茂密

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值