Playwright CLI Skill 是一个以命令行界面(CLI)为优先方式的浏览器自动化技能,目标是在终端中驱动真实浏览器完成自动化操作。
用途 该技能适用于需要从终端自动化真实浏览器的任务,包括导航、表单填写、快照、截图、数据提取和 UI 流程调试等。它被定位为 CLI 优先的自动化工具,不转向 @playwright/test,除非用户明确要求生成测试文件。
主要能力
- 通过 playwright-cli 在终端驱动浏览器。
- 打开页面(支持 --headed 有头模式以便进行视觉检查)。
- 获取快照(snapshot)以获得稳定的元素引用。
- 使用快照中的引用进行交互,如 click、type、press、fill 等。
- 捕获产物,包括截图、pdf、追踪(traces)。
- 表单填写与提交。
- 使用追踪(tracing-start / tracing-stop)调试 UI 流程。
- 多标签页操作(tab-new、tab-list、tab-select)。
使用方式 前置检查(必需):在提出命令之前,检查 npx 是否可用,因为包装脚本依赖它:
command -v npx >/dev/null 2>&1
如果 npx 不可用,暂停并请用户安装 Node.js/npm(它提供 npx)。提供以下步骤(原文照录):
Verify Node/npm are installed
node --version npm --version
If missing, install Node.js/npm, then:
npm install -g @playwright/cli@latest playwright-cli --help
一旦 npx 就绪,使用包装脚本继续进行。playwright-cli 的全局安装是可选的。
技能路径(设置一次):
export CODEX_HOME="${CODEX_HOME:-$HOME/.codex}" export PWCLI="$CODEX_HOME/skills/playwright/scripts/playwright_cli.sh"
用户级技能安装在 $CODEX_HOME/skills 下(默认:~/.codex/skills)。
快速开始(使用包装脚本):
"$PWCLI" open https://playwright.dev --headed "$PWCLI" snapshot "$PWCLI" click e15 "$PWCLI" type "Playwright" "$PWCLI" press Enter "$PWCLI" screenshot
如果用户偏好全局安装,以下方式同样有效:
npm install -g @playwright/cli@latest playwright-cli --help
核心工作流
- 打开页面。
- 获取快照以得到稳定的元素引用。
- 使用最新快照中的引用进行交互。
- 在导航或 DOM 发生显著变化后重新快照。
- 在有用时捕获产物(截图、pdf、追踪)。
最小循环示例:
"$PWCLI" open https://example.com "$PWCLI" snapshot "$PWCLI" click e3 "$PWCLI" snapshot
何时需要重新快照 在以下情况后再次快照:
- 导航
- 点击会显著改变 UI 的元素
- 打开/关闭模态框或菜单
- 切换标签页 引用可能会失效。当命令因引用缺失而失败时,重新快照。
推荐模式 表单填写与提交:
"$PWCLI" open https://example.com/form "$PWCLI" snapshot "$PWCLI" fill e1 "user@example.com" "$PWCLI" fill e2 "password123" "$PWCLI" click e3 "$PWCLI" snapshot
使用追踪调试 UI 流程:
"$PWCLI" open https://example.com --headed "$PWCLI" tracing-start
...interactions...
"$PWCLI" tracing-stop
多标签页工作:
"$PWCLI" tab-new https://example.com "$PWCLI" tab-list "$PWCLI" tab-select 0 "$PWCLI" snapshot
包装脚本 包装脚本使用 npx --package @playwright/cli playwright-cli,使 CLI 无需全局安装即可运行:
"$PWCLI" --help
除非仓库已统一采用全局安装,否则优先使用包装脚本。
参考资料 按需打开:
- CLI 命令参考:references/cli.md
- 实用工作流与故障排除:references/workflows.md
护栏(Guardrails)
- 在引用像 e12 这样的元素 id 之前,始终先做快照。
- 当引用看起来失效时,重新快照。
- 优先使用显式命令,而不是 eval 和 run-code,除非确有需要。
- 当没有最新快照时,使用像 eX 这样的占位引用并说明原因;不要用 run-code 绕过引用。
- 当视觉检查有帮助时,使用 --headed。
- 在本仓库中捕获产物时,使用 output/playwright/,避免引入新的顶层产物文件夹。
- 默认使用 CLI 命令和工作流,而不是 Playwright 测试规范。
适用场景
- 终端驱动的浏览器会话自动化。
- 表单填写与提交。
- UI 流程调试(结合追踪)。
- 多标签页操作。
- 页面快照、截图、数据提取。
限制
- 需要 npx 可用(依赖 Node.js/npm),否则需先安装。
- 默认面向 CLI 工作流,不生成 @playwright/test 测试文件,除非用户明确要求。
- 交互依赖快照产生的元素引用,引用可能失效,需要重新快照。
- 更多官方说明、收费与价格等信息暂未提供。