← 所有文章
·playwrightcodegencomparison

Playwright codegen 对比 AI 探索:各自何时更合适

npx playwright codegen 是测试生态里最好用的免费工具之一。它打开一个浏览器,你在应用里点着走一遍,它就把每次交互记成 Playwright 代码,用的是基于 role 和 text 的定位器。不花一分钱,也不跑任何模型。要是你从没试过,今天就跑一次。

录下点击,和编写一个测试,是两码事。

codegen 做什么

codegen 只做转录。它看着你操作,把看到的写下来。点一下 "Sign in" 按钮,它就吐出 page.getByRole('button', { name: 'Sign in' }).click();填个字段,它就吐出一个 .fill()。它挑的定位器不错,偏爱 role 和 label 而不是 CSS,产出的是你读得懂的干净 Playwright。

它什么都不替你决定。

codegen 根本不知道你想干成什么。你没法丢一句"测一下登录流程"就走开;登录流程得你自己一步一步点出来。只有你点工具栏去录一条断言,它才加一条。哪些点击是关键的、哪些只是你在找菜单,它分不清。原始产出只是一份草稿,之后还得你自己改。

这不算工具的短板。速记员记的是别人说过的话,codegen 记的是你做过的动作。

AI 探索干的是另一件事

Hover 从你想要什么出发,而不是从你的点击出发。你敲一句话("log in, then add a todo named verify hover"),agent 自己把步骤推出来:它找到邮箱字段、密码字段、提交按钮,输入 todo,再补一条断言检查这条 todo 有没有出现。你描述结果,路径由 agent 找。

这样一来,好几件事就变了。你靠说出想要什么来编写,而不是亲手操作一遍——流程一长、或者要给别人搭的应用写测试时,这一点特别管用。agent 会从目标反推断言,你不用惦记着去录那条"证明它成功了"的检查。碰上会打断手动录制的 cookie 横幅或插页广告,agent 也能直接绕过。

Hover 的产出和 codegen 是同一种文件:一个带语义定位器的纯 @playwright/test spec,在 CI 里不带模型运行。Hover 把模型花在编写阶段,交到你手上的是普通的 Playwright。你不用拿 codegen 那份干净、零依赖的产出,去换一个厂商专有格式。

该选哪个

选 codegen,如果流程很短、你也乐意自己点、除了 Playwright 别的都不想要,而且你要抓的是一段自己早就一步步烂熟于心的序列。

选 AI 探索,如果你宁愿描述测试而不想亲手操作、流程很长或带分支、想让断言自动推断出来,又或者 UI 改了、你想靠重跑 prompt 来重新编写、而不是把整个流程重新点一遍。

值得守住的那个特性

两个工具交给你的都是标准 Playwright 代码,在 CI 里不带模型运行。守住它。一个你读得懂、diff 得了、能交给队友、在任何机器上都免费跑的测试,会比困在厂商 runtime 里的测试活得更久——不管你当初是怎么写出来的。codegen 靠转录把你带到这一步,Hover 靠探索。眼前这条流程适合哪个,就用哪个。

阅读 Hover 录制模式文档 →

在你自己的应用上试试 Hover。

把 Hover 的 MCP 加到你已经在用的编码 agent。它探索你的应用,结晶出你自己拥有的纯 Playwright spec。

npm i -g @hover-dev/mcp && claude mcp add hover -- hover-mcp阅读快速开始 →