自动化测试经常会遇到扫码登录的场景,我们可以使用cookie实现不用扫码直接登录。
实现思路
- 先手动扫码登录 ,将登录后的cookies保存到本地文件中
- 执行自动化用例时,从本地文件中获取cookies,遍历cookies,将失效时间expires从cookies中剔除
示例
import json
from selenium import webdriver
class TestCookies:
def setup(self):
self.driver = webdriver.Chrome("D:\\chromedriver.exe")
self.driver.get("https://work.weixin.qq.com")
def test_cookies(self):
# 获取并保存cookie到本地文件
# sleep(20)
# cookies = self.driver.get_cookies()
# with open("cookies.txt", "w") as f:
# json.dump(cookies, f)
# 从文件中读取cookie
with open("cookies.txt", "r") as f:
cookies = json.load(f)
# 遍历cookies,删除expiry
for cookie in cookies:
if "expiry" in cookie.keys():
cookie.pop("expiry")
self.driver.add_cookie(cookie)
self.driver.get("https://work.weixin.qq.com/wework_admin/frame")