PlaywrightCLI技能Skill "playwright"

Playwright CLI技能是一种通过命令行自动化真实浏览器的工具,支持导航、表单填写、截图和数据提取等功能,适用于UI流程调试、测试自动化和数据爬取。关键词:浏览器自动化、命令行、测试、UI调试、数据提取。

测试 0 次安装 0 次浏览 更新于 3/21/2026

name: “playwright” description: “当任务需要通过命令行自动化真实浏览器(导航、表单填写、快照、截图、数据提取、UI流程调试)时使用,通过playwright-cli或捆绑的包装脚本。” author: openai

Playwright CLI 技能

使用playwright-cli从命令行驱动真实浏览器。优先使用捆绑的包装脚本,这样即使未全局安装,CLI也能工作。 将此技能视为CLI优先的自动化。除非用户明确要求测试文件,否则不要转向@playwright/test

先决条件检查(必需)

在提出命令之前,检查npx是否可用(包装脚本依赖它):

command -v npx >/dev/null 2>&1

如果不可用,暂停并询问用户安装Node.js/npm(它提供npx)。提供以下步骤:

# 验证Node/npm是否安装
node --version
npm --version

# 如果缺失,安装Node.js/npm,然后:
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

核心工作流程

  1. 打开页面。
  2. 快照以获取稳定的元素引用。
  3. 使用最新快照中的引用进行交互。
  4. 在导航或DOM显著变化后重新快照。
  5. 在有用时捕获工件(截图、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
# ...交互...
"$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

护栏

  • 在引用元素ID如e12之前总是快照。
  • 当引用似乎过时时重新快照。
  • 除非需要,否则优先使用显式命令而非evalrun-code
  • 当没有新鲜快照时,使用占位符引用如eX并说明原因;不要通过run-code绕过引用。
  • 当视觉检查有帮助时使用--headed
  • 在此存储库中捕获工件时,使用output/playwright/,避免引入新的顶级工件文件夹。
  • 默认为CLI命令和工作流程,而非Playwright测试规范。