三、用户上下文:模拟真实用户环境
Playwright的BrowserContext是隔离用户数据(Cookie、本地存储、会话)的核心机制,比传统的“启动多个浏览器”更轻量,适合模拟多用户场景。
1. 保存登录状态:复用Cookie与本地存储
无需每次启动都重新登录,可通过context.storage_state()保存状态,下次启动时加载:
# 第一步:登录并保存状态
with sync_playwright() as p:
browser = p.chromium.launch(headless=False)
context = browser.new_context() # 创建一个新的用户上下文
page = context.new_page()
# 执行登录操作(示例:登录GitHub)
page.goto("https://github.com/login")
page.fill('input[name="login"]', "your_username")
page.fill('input[name="password"]', "your_password")
page.click('input[type="submit"]')
page.wait_for_url("https://github.com/") # 等待登录完成
# 保存状态到文件(包含Cookie、localStorage等)
context.storage_state(path="github_login_state.json")
browser.close()
# 第二步:加载保存的状态,直接进入登录状态
with sync_playwright() as p:
browser = p.chromium.launch(headless=False)
# 从文件加载状态创建上下文
context = browser.new_context(storage_state="github_login_state.json")
page = context.new_page()
page.goto("https://github.com") # 无需登录,直接进入已登录状态
input("按回车关闭...")
browser.close()
本文共 个字数,平均阅读时长 ≈ 分钟,您已阅读:0时0分0秒。
649494848