Playwright 浏览器自动化技能
通过终端驱动真实浏览器,完成网页操作、提取与界面调试。
文档明确要求使用快照、避免不必要的 eval,并将产物限制在 output/playwright/;但浏览器可访问外部网站,包装脚本通过 npx --yes 下载并执行未固定版本的 @playwright/cli,且示例包含密码填写、网络检查和代码执行,没有数据流披露、敏感数据处理、用户确认或回滚说明,因此扣分。
脚本使用 set -euo pipefail、检查 npx,并对会话和过期元素引用提供基本处理;但依赖在线 npx、版本未锁定,没有提交的测试或 CI 证据,且异常输入、网络失败和浏览器启动失败的诊断反馈有限,因此保持在静态评估上限内并扣分。
目标用户和核心场景(终端中的真实浏览器导航、表单、快照、截图、提取和调试)清晰,且给出多标签页、会话和调试示例;但未明确非适用范围、触发边界、中文语言支持或中国大陆网络可达性,核心功能依赖 npm/GitHub 等外部网络,因此扣分。
信息结构清楚,包含前置检查、快速开始、核心流程、参考文档、工作流和故障排查;但许可证元数据未知,缺少技能版本、变更记录、明确维护责任和更新路径,且仓库 README 标示仓库已弃用,因此扣分。
示例覆盖常见浏览器自动化任务,命令和输出位置可直接作为操作起点,静态材料支持核心价值判断;但没有可复现执行结果、代表性产物或与替代方案的比较,结果正确性和完整性仍需人工验证,因此按静态上限计分并扣分。
技能文件、参考资料和包装脚本均可审计,命令流程之间基本一致;但没有测试套件、CI、第三方执行记录或多来源佐证,结论主要来自静态文档,因此仅给有限分数。
- npx --yes 会在线解析并执行未锁定的最新 CLI 依赖;生产或敏感流程应固定版本并审查依赖来源。
- 表单示例使用明文密码,且 eval、run-code、网络和文件上传能力可能处理敏感数据;使用前应获得用户确认并隔离会话、凭据和产物。
- 功能依赖 Node/npm 及外部网络,未证明在中国大陆网络环境中稳定可达。
- 仓库已标记为弃用,许可证、版本和维护更新责任需要进一步核实。
它能做什么 & 适用场景
该技能让 Codex 通过 playwright-cli 从终端自动化真实浏览器。它覆盖页面导航、表单填写、快照、截图、数据提取和 UI 流程调试,并优先使用随技能提供的包装脚本。使用前必须确认系统提供 npx;包装脚本会通过 npx 运行 @playwright/cli。它面向 CLI 自动化,不默认生成或执行 @playwright/test 测试文件。
先检查 npx 是否可用,然后设置包装脚本路径;通过 open 打开网页、snapshot 获取稳定元素引用、click/fill/type/press 执行交互,并可使用 screenshot、pdf 或 tracing-start/tracing-stop 捕获产物。导航、明显的 DOM 变化、菜单或模态框变化以及标签页切换后,需要重新获取快照。多标签页可通过 tab-new、tab-list 和 tab-select 管理。
- 开发者需要从终端打开网页、填写表单并提交结果时。
- 调试人员需要复现包含点击、导航或弹窗的 UI 流程时。
- 研究人员需要从网页中提取数据并保存截图作为证据时。
- 测试或排障人员需要通过 headed 模式观察浏览器行为并录制 trace 时。
优缺点一览
- 优先使用包装脚本,无需全局安装 playwright-cli。
- 提供稳定元素引用、重新快照和多标签页等明确工作流。
- 支持截图、PDF 和 trace 等浏览器调试产物。
- 依赖 Node.js/npm 提供的 npx,以及 @playwright/cli。
- 元素引用会因页面变化而失效,必须在关键变化后重新快照。
- 源材料未提供测试套件、平台兼容性清单或独立许可证内容。
- 默认面向 CLI 操作,不适合需要 @playwright/test 测试文件的任务。
如何安装
该技能位于 openai/skills 的 skills/.curated/playwright。可在 Codex 中运行 $skill-installer playwright 安装 curated 技能,安装后重启 Codex。源材料没有说明独立许可证;README 说明单个技能的许可证应查看其目录中的 LICENSE.txt,但这里未提供该文件内容。
如何使用
先运行 command -v npx >/dev/null 2>&1。确认可用后设置:export CODEX_HOME="${CODEX_HOME:-$HOME/.codex}" 和 export PWCLI="$CODEX_HOME/skills/playwright/scripts/playwright_cli.sh"。示例:"$PWCLI" open https://playwright.dev --headed,然后运行 "$PWCLI" snapshot,再依据最新快照中的引用执行 "$PWCLI" click e15、"$PWCLI" type "Playwright"、"$PWCLI" press Enter 和 "$PWCLI" screenshot。如果 npx 不可用,应先安装 Node.js/npm;全局安装 playwright-cli 是可选方案。
对比同类
与全局安装的 playwright-cli 相比,该技能优先使用包装脚本通过 npx 运行 CLI;全局安装只是可选方案。与 @playwright/test 相比,它强调终端驱动的交互式浏览器工作流,而不是测试文件。