playwright – skill Lập trình cho agent AI
Dùng khi tác vụ cần tự động hóa trình duyệt thật từ terminal (điều hướng, điền form, snapshot, chụp màn hình, trích xuất dữ liệu, gỡ lỗi luồng UI) qua `playwright-cli` hoặc script wrapper đi kèm.
Cài skill playwright bằng một lệnh
Chọn công cụ bạn đang dùng, copy lệnh và dán vào terminal. Skill sẽ nằm trong thư mục skills của công cụ đó và sẵn sàng dùng ở phiên làm việc tiếp theo.
Claude Code
mkdir -p ~/.claude/skills && curl -fsSL https://skill.dn1nguoi.com/z/playwright-e8447.tgz | tar xz -C ~/.claude/skills
Gọi trong Claude Code: /playwright – rồi mô tả công việc bạn muốn làm.
Codex
mkdir -p ~/.codex/skills && curl -fsSL https://skill.dn1nguoi.com/z/playwright-e8447.tgz | tar xz -C ~/.codex/skills
Gọi trong Codex: $playwright – rồi mô tả công việc bạn muốn làm.
Hermes Agent
mkdir -p ~/.hermes/skills && curl -fsSL https://skill.dn1nguoi.com/z/playwright-e8447.tgz | tar xz -C ~/.hermes/skills
Gọi trong Hermes Agent: /playwright – rồi mô tả công việc bạn muốn làm.
DeepSeek
mkdir -p ~/.deepcode/skills && curl -fsSL https://skill.dn1nguoi.com/z/playwright-e8447.tgz | tar xz -C ~/.deepcode/skills
Gọi trong DeepSeek: /playwright – rồi mô tả công việc bạn muốn làm.
Nội dung SKILL.md
Nội dung SKILL.md gốc bằng tiếng Anh.
Playwright CLI Skill
Drive a real browser from the terminal using playwright-cli. Prefer the bundled wrapper script so the CLI works even when it is not globally installed.
Treat this skill as CLI-first automation. Do not pivot to @playwright/test unless the user explicitly asks for test files.
Prerequisite check (required)
Before proposing commands, check whether npx is available (the wrapper depends on it):
command -v npx >/dev/null 2>&1If it is not available, pause and ask the user to install Node.js/npm (which provides npx). Provide these steps verbatim:
# Verify Node/npm are installed
node --version
npm --version
# If missing, install Node.js/npm, then:
npm install -g @playwright/cli@latest
playwright-cli --helpOnce npx is present, proceed with the wrapper script. A global install of playwright-cli is optional.
Skill path (set once)
export CODEX_HOME="${CODEX_HOME:-$HOME/.codex}"
export PWCLI="$CODEX_HOME/skills/playwright/scripts/playwright_cli.sh"User-scoped skills install under $CODEX_HOME/skills (default: ~/.codex/skills).
Quick start
Use the wrapper script:
"$PWCLI" open https://playwright.dev --headed
"$PWCLI" snapshot
"$PWCLI" click e15
"$PWCLI" type "Playwright"
"$PWCLI" press Enter
"$PWCLI" screenshotIf the user prefers a global install, this is also valid:
npm install -g @playwright/cli@latest
playwright-cli --helpCore workflow
1. Open the page.
2. Snapshot to get stable element refs.
3. Interact using refs from the latest snapshot.
4. Re-snapshot after navigation or significant DOM changes.
5. Capture artifacts (screenshot, pdf, traces) when useful.
Minimal loop:
"$PWCLI" open https://example.com
"$PWCLI" snapshot
"$PWCLI" click e3
"$PWCLI" snapshotWhen to snapshot again
Snapshot again after:
- navigation
- clicking elements that change the UI substantially
- opening/closing modals or menus
- tab switches
Refs can go stale. When a command fails due to a missing ref, snapshot again.
Recommended patterns
Form fill and submit
"$PWCLI" open https://example.com/form
"$PWCLI" snapshot
"$PWCLI" fill e1 "[email protected]"
"$PWCLI" fill e2 "password123"
"$PWCLI" click e3
"$PWCLI" snapshotDebug a UI flow with traces
"$PWCLI" open https://example.com --headed
"$PWCLI" tracing-start
# ...interactions...
"$PWCLI" tracing-stopMulti-tab work
"$PWCLI" tab-new https://example.com
"$PWCLI" tab-list
"$PWCLI" tab-select 0
"$PWCLI" snapshotWrapper script
The wrapper script uses npx --package @playwright/cli playwright-cli so the CLI can run without a global install:
"$PWCLI" --helpPrefer the wrapper unless the repository already standardizes on a global install.
References
Open only what you need:
- CLI command reference:
references/cli.md - Practical workflows and troubleshooting:
references/workflows.md
Guardrails
- Always snapshot before referencing element ids like
e12. - Re-snapshot when refs seem stale.
- Prefer explicit commands over
evalandrun-codeunless needed. - When you do not have a fresh snapshot, use placeholder refs like
eXand say why; do not bypass refs withrun-code. - Use
--headedwhen a visual check will help. - When capturing artifacts in this repo, use
output/playwright/and avoid introducing new top-level artifact folders. - Default to CLI commands and workflows, not Playwright test specs.
Skill liên quan
- hunt-cors – Săn lỗi cấu hình CORS: phản chiếu origin kèm credentials, tin tưởng null origin, bỏ qua…
- source-driven-development – Đặt mọi quyết định triển khai trên nền tảng tài liệu chính thức. Dùng khi muốn kiểm…
- api-testing-observability-api-mock – Bạn là chuyên gia mock API, chuyên thiết kế dịch vụ mock thực tế cho phát triển, kiểm…
- hunt-deserialization – Săn lỗ hổng Insecure Deserialization — chuỗi gadget Java (ysoserial), PHP object…
- spec-driven-development – Lập đặc tả trước khi viết code. Dùng khi bắt đầu dự án, tính năng hoặc thay đổi lớn mà…
- fluidsim – Lên kế hoạch, cấu hình, kiểm tra, khởi động lại và phân tích các mô phỏng CFD FluidSim…
- apify-generate-output-schema – Tạo output schema (dataset_schema.json, output_schema.json, key_value_store_schema.json)…
- error-handling-patterns – Thành thạo các mẫu xử lý lỗi trên nhiều ngôn ngữ, bao gồm exception, kiểu Result, lan…