自动化测试——cookie复用


文章目录

  • 一、为什么要使用Cookie自动化登录
  • 二、常见问题
  • 三、使用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/')

你可能感兴趣的:(#,WEB自动化测试,python,chrome,开发语言)