Playwright Test Automation
Use when the task requires automating a real browser from the terminal (navigation, form filling, snapshots, screenshots, data extraction, UI-flow debugging) via `playwright-cli` or the bundled wrapper script.
Content
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):
If it is not available, pause and ask the user to install Node.js/npm (which provides npx). Provide these steps verbatim:
Once npx is present, proceed with the wrapper script. A global install of playwright-cli is optional.
Skill path (set once)
User-scoped skills install under $CODEX_HOME/skills (default: ~/.codex/skills).
Quick start
Use the wrapper script:
If the user prefers a global install, this is also valid:
Core 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:
When 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
Debug a UI flow with traces
Multi-tab work
Wrapper script
The wrapper script uses npx --package @playwright/cli playwright-cli so the CLI can run without a global install:
Prefer 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.
FAQ
Discussion
Loading comments...