我把Playwright封装成了Skill,结果一句话跑完整个回归:附安装步骤+踩坑实录

本文摘要我把Playwright封装成了Skill,结果一句话跑完整个回归:附安装步骤+踩坑实录本文来源: 未署名(公众号:未署名)原文链接: https://mp.weixin.qq.com/s/Y7o8kz-UHHapsc_VBtEXdg发布时间: 2026-10-12 16:45作者: 未署名  发布时间: 2026-10-12 16:45上周面试了一个五年经验的测试,我问她:“你上一份工作,UI自...

我把Playwright封装成了Skill,结果一句话跑完整个回归:附安装步骤+踩坑实录

本文来源: 未署名(公众号:未署名)
原文链接: https://mp.weixin.qq.com/s/Y7o8kz-UHHapsc_VBtEXdg
发布时间: 2026-10-12 16:45

我把Playwright封装成了Skill,结果一句话跑完整个回归:附安装步骤+踩坑实录

作者: 未署名  发布时间: 2026-10-12 16:45


上周面试了一个五年经验的测试,我问她:“你上一份工作,UI自动化是怎么做的?”

她说:“用Playwright写脚本,Page Object模式,CI里跑。”

我问:“一个中等复杂度的回归场景,从写脚本到跑通,要多久?”

她说:“半天吧,如果定位器不挂的话。”

我说:“那如果你告诉AI‘帮我测一下登录加购结算’,两分半钟跑完,你信吗?”

她愣了一下,说:“不可能吧。”

我也没想到。但试完之后,我信了。

一、你不是不会用Playwright,你是每次都在重复机械流程

又到回归测试周。

打开终端,敲一遍 playwright-cli open,等页面加载;再敲 playwright-cli snapshot,等快照生成;然后瞪大眼睛从快照里找元素Ref编号,再敲 playwright-cli click [ref]、playwright-cli fill [ref]……一个用例跑完,手指已经麻了。

更崩溃的是,这样的用例有几十个。每个都要重复一遍:敲命令→找Ref→敲命令→找Ref。

你告诉自己“这是最后一次手敲了”,但下一个回归周,历史重演。

你不是不会用Playwright,你是每次都在重复“选命令→找参数→执行→验证”这套机械流程。CLI命令会敲,但回归一多就散架。

更烦的是,这套流程无法沉淀。今天跑通了,明天还要重新跑。新人来了,你得从头教一遍。规范写在聊天记录里,下一轮就丢了。

问题出在哪?

你缺的不是命令,是一份操作手册。

二、Skill是什么?给AI配一个“专科医生”

Skill就像给AI配了一个专科医生。

你挂“眼科”,它就知道该查视力、测眼压、看眼底。你挂“骨科”,它就知道该拍片、触诊、看关节活动度。

你告诉Codex“帮我测一下登录加购结算”,它就知道该用 open 打开页面、snapshot 获取元素Ref、fill 填表、click 点击。

安装步骤(一条命令):

playwright-cli install --skills

这条命令会把 SKILL.md 及参考文档复制到Skill目录——比如项目下的 .agents/skills/playwright-cli/,或者全局的 ~/.agents/skills/playwright-cli/。

确认加载: 重启Codex,在「插件 → 技能」中确认 playwright-cli 已加载。

避坑提示: Skill文件不在扫描路径时,Codex不会自动匹配。看到任务完全不走CLI,先检查目录是不是 .agents/skills/playwright-cli/,必要时手动拷贝后再重启。

关键点:无需MCP服务器配置。 AI通过Shell执行 playwright-cli 即可操控浏览器。相比MCP需要配置服务器、注册工具,Skill方案轻量得多。

三、实战:一句话跑完登录加购结算

我用的测试目标:Sauce Demo(标准电商测试网站)。

任务描述(一段话):

“用有头模式打开Sauce Demo,用标准用户登录,把折后实付最低的商品加入购物车,进入购物车结算,填写姓名First、姓氏Last、邮编12345,确认订单,截图保存成功页。”

输入之后,我盯着屏幕看Codex的执行过程:

第1步:打开首页并登录

AI调用 open 打开Sauce Demo首页,自动 snapshot 生成首页快照。从快照里读取用户名输入框(Ref: e23)、密码输入框(Ref: e45)、登录按钮(Ref: e67)的编号,依次执行 fill 和 click。登录成功后,自动 snapshot 生成商品列表页快照。

第2步:识别并添加最便宜的商品

AI从商品列表快照里读取所有商品的价格,逐一对比后,识别出折后实付最低的是“Sauce Labs Onesie”(折后$7.99)。找到该商品对应的“Add to cart”按钮Ref,执行 click。自动 snapshot 确认添加成功。

第3步:进入购物车

AI从页面快照里识别出购物车图标的Ref,执行 click。进入购物车页面后,自动 snapshot,确认商品在列表中。识别“Checkout”按钮Ref,执行 click。

第4步:填写结算信息

AI在结算信息页面自动 snapshot,从快照里读取FirstName、LastName、ZipCode输入框的Ref,依次执行 fill 填入“First”、“Last”、“12345”。识别“Continue”按钮Ref,执行 click。

第5步:最终确认

AI在概览页面自动 snapshot,展示商品、总价、运费等信息。识别“Finish”按钮Ref,执行 click。在最终成功页面自动 snapshot 截图留痕。

全程耗时:约2分30秒。我没有敲任何一行CLI命令。

四、踩坑实录:3个让我差点放弃的瞬间

好话说了不少,但实测过程并不是一帆风顺。以下是我遇到的3个真实翻车时刻,以及我是怎么解决的。

坑1:AI第一次把“最便宜”理解错了

我第一次输入时,描述是“把最便宜的那件商品加入购物车”。Sauce Demo首页有个商品打了折扣标签,AI读取价格时把原价和折后价都识别了,最后取了原价最低的,而不是折后实付最低的。

解决方式: 我把描述改成“把折后实付金额最低的那件商品加入购物车”。重新执行后,AI正确识别了折扣价,选了折后$7.99的商品。

经验: 业务规则越精确,AI的执行越准确。别指望AI自动懂“最便宜”指的是折后价还是原价。

坑2:AI在结算页面填错了邮编格式

Sauce Demo的邮编要求是5位数字。我第一次描述时只说“填写邮编12345”,AI正常执行。但后来同事测试时填了“12345-6789”(带横杠),AI照填了,结果页面校验不通过,流程卡住了。

解决方式: 在Skill的配置里,给邮编输入框加了 format: “5-digits” 的约束提示。之后AI如果遇到非5位数字的邮编输入,会主动提示格式错误。

经验: 对于有格式要求的字段,最好在Skill或提示词里明确格式规则。

坑3:页面加载慢时,AI过早执行 snapshot

有两次执行时,结算概览页面的商品明细加载慢了2秒多,AI按照Skill默认的等待时间(2秒)执行 snapshot,结果快照里“Finish”按钮还没渲染出来,AI找不到Ref,流程中断。

解决方式: 我在Skill的配置文件中把 default_timeout 从2秒调整到5秒。之后执行稳定了。

经验: 测试环境的响应速度直接影响AI执行的稳定性。在Skill里设置合理的超时时间,比每次手动加 --wait 要省心。

五、从“跑一遍”到“可复用资产”

跑通一次不算什么。跑通之后能沉淀成什么,才重要。

Codex + Skill的妙处在于:执行过程中自动识别了页面元素和操作路径,执行完成后可以自动提炼成PO分层脚本。

页面层: 登录页、商品列表、购物车、结算页的定位和操作。改UI时只改这一层。

用例层: 登录→加购→结算的业务路径。对应一条可回归的测试场景。

下次回归,直接跑脚本,不用再让AI重新“理解”一遍。

Prompt只能解决一次问题,而Skill可以永久复用解决方案。

把沉淀的PO脚本和Skill放在一起管理,形成团队自己的测试资产库。新人来了不用从头教,Skill就是最好的“老员工”。

六、选型建议:MCP探索,还是CLI+Skill回归

两套能力可以共存,但测试项目里要先定默认路径,避免同一条用例今天走MCP、明天走CLI,证据格式对不上。

场景更合适的方案原因
短期探索未知页Playwright MCP完整可访问性控制、控制台、网络状态一次返回,适合探索路径
长流程/夜间回归CLI + Skill状态落盘、按需读取、Token更省,也方便录制成脚本
要入库的UI用例CLI + Skill探索结束后整理.spec.ts或PO模式Python,页面层和用例层分开

Token消耗差异也很关键: Playwright团队的基准测试显示,使用MCP进行典型浏览器自动化任务消耗的token数量约为114,000个,而使用CLI则约为27,000个token,大致减少了4倍。对于长流程回归,这个差距非常可观。

七、写在最后

回到开头那个面试场景。

以前我写Playwright脚本,思考顺序是“定位器→命令→断言→截图”,每一步都要纠结语法细节。

现在我的思考顺序变成了“这个场景的核心路径是什么→关键断言点在哪→然后AI帮我跑”。

从“怎么执行”到“执行什么”,这是认知负担的迁移。

Codex正在从一个编写代码的智能体,进化为能够在电脑上利用代码完成任务的智能体。测试同学的角色也在从“敲命令的人”变成“提需求的人”。

你的工作方式,该升级了。

想自己动手试试?

我把这套流程整理成了一份《Playwright Skill实战手册》,包含:

  • Skill安装和配置的完整步骤
  • Sauce Demo完整任务的Prompt模板
  • 三个常见坑的解决方案
  • PO分层脚本的生成模板

在公众号后台回复关键词:666领取

如果你已经在用类似方案,或者踩过什么坑,也欢迎回来说一声。这东西我一个人摸索出来的,不一定适合所有人,但至少能让你少走我走过的弯路。


本文转载自微信公众号「未署名」,仅供学习交流使用。

觉得内容不错?我要

打赏杯咖啡或蜜雪冰城吧
微信扫一扫
微信赞赏码
支付宝扫一扫
支付宝赞赏码
评论 暂无评论
请登录后参与评论