playwright--storage_state保存登录cookies
Playwright 提供了一种在测试中保持登录状态的方法,只登录一次,就可以跳过所有测试的登录步骤。
·
文章目录
前言
Playwright 提供了一种在测试中保持登录状态的方法,只登录一次,就可以跳过所有测试的登录步骤
一、首次登陆
登陆成功后,保存状态文件,后面的用例直接读取这个文件的状态保持登陆即可。
import ddddocr
from playwright.async_api import Playwright
from playwright.sync_api import sync_playwright
def run(playwright: Playwright):
# 启动 chromium 浏览器
browser = p.chromium.launch(headless=False,slow_mo=1000)
context = browser.new_context()
# 打开一个标签页
page = context.new_page()
# 打开百度
page.goto("http://192.168.64.209:8008/#/login")
# 打印当前页面title
print(page.title())
page.locator(".s-canvas").screenshot(path="example.png")
page.get_by_placeholder("账号").fill("admin")
page.get_by_placeholder("密码").fill("Admin@123")
ocr = ddddocr.DdddOcr()
with open('example.png', 'rb') as f:
img_bytes = f.read()
result = ocr.classification(img_bytes)
print(result)
page.get_by_placeholder("验证码").fill(result)
page.get_by_role("button", name="登录").click()
page.screenshot(path="example2.png")
page.set_default_timeout(10000)
# 保存状态文件
storage = context.storage_state(path="../auth/state.json")
context.close()
#关闭浏览器
browser.close()
with sync_playwright() as p:
run(p)`
二、保持登陆状态使用
使用**browser.new_context(storage_state=“…/auth/state.json”)**去加载保存在本地的cookies
from playwright.sync_api import Playwright, sync_playwrig
def run(playwright: Playwright):
browser = playwright.chromium.launch(headless=False)
# 加载本地cookies,免登陆
context = browser.new_context(storage_state="../auth/state.json")
# 打开页面继续操作
page = context.new_page()
page.goto('http://192.168.64.209:8008/')
# 打断点看是否已经登录
page.pause()
context.close()
browser.close()
with sync_playwright() as p:
run(p)
运行后结果:
更多推荐

所有评论(0)