【Playwright】关于无痕模式与无头模式

Playwright的无头模式和无痕模式

无头模式

无头模式指的是自动测试框架在执行过程中不打开浏览器窗口的功能。在Playwright中,关闭无头模式会在测试代码执行过程中显示浏览器窗口,执行的过程会显示在浏览器的上。

# 以下代码以Playwright的同步API为例
from playwright.sync_api import sync_playwright

with sync_playwright() as p:
	# 默认情况下开启无头模式,也就是不显示浏览器窗口
	browser = p.chromium.launch(headless=False)
  # 省略后续操作

无痕模式

无痕模式就是通常情况下理解的浏览器不跟踪用户行为的模式,在此模式下无法保持登录状态。这也是Playwright打开浏览器窗口的默认模式。如果需要保持登录状态,那么需要使用Playwright提供的storage_stateAPI:

  1. 首先进行登录操作,然后把登录状态保存到本地(以Gitee登录为例,变化的参数已用花括号括起来)
from playwright.sync_api import sync_playwright

with sync_playwright() as p:
	p.chromium.launch()
	context = browser.new_context()
  page = context.new_page()
  page.goto("https://www.gitee.com/login")
  # page.click("#git-nav-user-bar > a.item.git-nav-user__login-item")
  page.fill("#user_login", "{你的邮箱}")
  page.fill("#user_password", "{你的Gitee密码}")
	# 点击"记住我"选项
  page.click("#new_user > div > div > div > div.two.fields > div:nth-child(1) > div > label")
	# 点击登录按钮
  page.click("#new_user > div > div > div > div:nth-child(4) > input")
	# 保证此时浏览器中已有登录状态
  page.wait_for_load_state("networkidle")
	# 将登录状态保存在本地,保存为state.json
  context.storage_state(path="./state.json")
  1. 创建新的浏览器Context,加载已有的登录状态,直接访问Gitee,此时就能看到已经登陆成功
from playwright.sync_api import sync_playwright

with sync_playwright() as p:
	p.chromium.launch()
  context = browser.new_context(storage_state="./state.json")
  page = context.new_page()
  page.goto("https://www.gitee.com")
  page.wait_for_load_state("networkidle")
	# 等待几秒,为了看到页面加载完成的画面
  time.sleep(2)
  # 截图保存
  page.screenshot(type="png", path="./result.png")

请添加图片描述

  • 9
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

OriginCoding

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

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

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

打赏作者

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

抵扣说明:

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

余额充值