首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Playwright极简使用手册(内部版)

Playwright极简使用手册(内部版)

作者头像
大飞记Python
发布2026-04-14 21:00:20
发布2026-04-14 21:00:20
530
举报

公司最近在推广用 Playwright 做自动化测试,不少测试同事试了一键录制功能后大为震撼,但紧接着问题就出现了:录制的代码不一定能跑通,需要有人来改😂

——这代码啥意思啊?!怎么改啊?! 就是被问的最多的问题,没有之一😂

小编索性花了半天时间,写了一份内部使用手册,就是那种全是人话,没一点啰嗦废话的手册

使用手册(极简版)

我们拿“登录 GitHub”这个场景来说,毕竟公司内部的网站是保密的

Playwright 的代码主要分三大块

1、针对浏览器的语法

这部分几乎固定,基本上不用改,大概了解(如果你想的话😂)

代码语言:javascript
复制
async def test_github_login():
    asyncwith async_playwright() as p:
        # 1. 启动浏览器
        browser = await p.webkit.launch(headless=False)

        # 2. 创建上下文和页面
        context = await browser.new_context(
            viewport={'width': 1280, 'height': 720}
        )
        page = await context.new_page()

        # 3. 监听请求和响应
        page.on("request", lambda req: print(f">> {req.method} {req.url}"))
        page.on("response", lambda res: print(f"<< {res.status} {res.url}"))
  • async def:定义一个"异步函数",后续会使用
  • async with async_playwright() as p::创建 Playwright 实例
  • browser = await p.webkit.launch(headless=False):启动 WebKit 浏览器(并显示浏览器界面)
  • page = await context.new_page() :创建一个新页面(标签页)
  • page.on("request", lambda req):监听网络请求和响应(request和response)

2、针对页面元素的语法

这是页面上的输入、点击、滑动等操作的实现代码(是我们修改代码的重点部分

代码语言:javascript
复制
# 跳转到登录页
await page.goto("https://github.com/login")

# 填写账号密码
await page.fill("#login_field", "你的用户名")
await page.fill("#password", "你的密码")

# 点击登录按钮
await page.click('input[name="commit"]')

# 添加等待时间,让页面跳转
await page.wait_for_timeout(9000)

2.1、await page.goto("URL") :URL就是我们自己的测试网址

2.2、最常用的几个鼠标动作:

  • 点击click()(还有双击、右击)
  • 输入fill()
  • 上传文件set_input_files()
  • 获取元素query_selector()

2.3、页面元素

await page.click('input[name="commit"]')括号里 '' 的部分就是我们要定位的元素,支持 CSS 和 XPath 等选择器写法

关于元素选择怎么获取,之前有一篇专门介绍,可以点击查看哈👇👇

python+chrome自动化2-XPath、CSS一篇精通

2.4、特殊处理:

  • await page.click('text=Login'):使用文字进行精确元素匹配

聪明的你可能发现了,代码里到处都是 await这其实是 Playwright 的一大优点——智能等待。我们不用自己写time.sleep(3)等待3秒时间了,Playwright 会自动等元素准备好再执行,如果一直没出来……它才会报错(默认等 30 秒)

3、一些高级操作语法

比如截图,保存PDF,Frame表单切换,执行js脚本,集成pytest报告等等,这些等用熟了再研究也不迟,今天咱们主打一个“能跑起来就行”

4、报错自救

这个错误就是没有安装 Playwright 内置浏览器,执行命令playwright install即可解决

image-20260130下午31148988
image-20260130下午31148988

TimeoutError一般都是忘记加await等待语句了,先检查一下自己代码是否存在此问题

image-20260130下午31528906
image-20260130下午31528906

当然,想学习任何一门技术都是有门槛的,相信可以耐心看到这里的小伙伴并不多😂,但小编还是觉得在这个AI遍地开花的年代,自身的学习和沉淀很重要,不然我们人类还剩下什么?

-END-

不要忘记点赞哦~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-01-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大飞记Python 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 使用手册(极简版)
    • 1、针对浏览器的语法
    • 2、针对页面元素的语法
    • 3、一些高级操作语法
    • 4、报错自救
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档