代码生成器是什么
Playwright 自带的录制工具:打开真实浏览器与检查器,边操作边生成可运行代码(可选 JavaScript、Python、Java、.NET 等目标语言)。定位是起步脚手架与定位器学习工具——用生成结果学习官方推荐的语义化定位写法,而不是把录制产物当长期维护的回归脚本。
基本信息
| 启动 | npx playwright codegen <url> 打开录制器与浏览器 |
|---|---|
| 目标语言 | --target 指定输出语言,如 python |
| 输出文件 | -o 直接把生成代码写入文件 |
| 登录态 | --save-storage / --load-storage 录制或复用会话 |
| 浏览器 | --browser chromium|firefox|webkit |
| 定位器 | 生成结果优先语义定位:get_by_role、get_by_label 等 |
最小示例
最小示例
npx playwright codegen https://example.com # 打开录制器
npx playwright codegen --target=python -o rec.py <url> # 直接输出 Python 脚本
npx playwright codegen --save-storage=auth.json <url> # 录制并保存登录态
# 录制产物只当起点:改名、收敛定位器、补上业务断言后再进仓库典型使用场景
- 起步脚本骨架:新项目里几分钟产出第一条可跑用例
- 学习官方定位写法:观察 get_by_role 等语义定位的生成结果
- 抓登录态:录制一次登录流程,保存 storage 供后续用例复用
- 疑难元素定位:检查器里试算定位器,挑最稳的一种
- 探索表单与上传交互:选择器拿不准时先录一遍看官方怎么写
- 给非代码同学演示:录制流程作为用例初稿的讨论材料
常用选项速览
| 选项 | 作用 | 注意 |
|---|---|---|
| --target | 选择生成语言 | 团队用什么选什么 |
| -o | 输出到文件 | 不写则只在检查器里显示 |
| --save-storage | 录制结束保存登录态 | 产物含会话凭据,勿进仓库 |
| --load-storage | 带登录态开始录制 | 跳过登录直接录业务操作 |
| --browser | 选择浏览器内核 | 默认 chromium |
录制产物不要直接进仓库:它会带脆弱的定位器和多余的等待,先重命名为业务语义、补上断言再做评审。
录制里若出现固定等待(waitForTimeout),要替换成可感知的等待(对断言自动重试),否则低配 CI 机器上必然抖动。
录制时的视口、时区等环境与 CI 不一致,会导致布局差异漏检;录制前先固定与流水线一致的运行参数。