Agent Skills
› fugazi/test-automation-skills-agents
› playwright-cli
playwright-cli
GitHub通过 CLI 驱动浏览器进行导航、交互、截图和调试。适用于页面检查、网络模拟、会话管理及交互式调试,不用于编写测试脚本。
Trigger Scenarios
需要手动或脚本化操作浏览器界面
获取页面快照或截图以辅助排查问题
在命令行中进行前端页面的交互式调试
Install
npx skills add fugazi/test-automation-skills-agents --skill playwright-cli -g -y
SKILL.md
Frontmatter
{
"name": "playwright-cli",
"license": "Complete terms in LICENSE.txt",
"description": "Drive a live browser from the CLI with playwright-cli to navigate, interact, snapshot, and capture evidence. Use for ad-hoc browser commands, page inspection, screenshots, traces, network mocking, session management, or interactive debugging—not authoring @playwright\/test specs. Keywords: playwright-cli, browser automation, live session, snapshot, console, tracing."
}
Browser Automation with playwright-cli
Quick start
playwright-cli open
playwright-cli goto https://playwright.dev
playwright-cli click e15 # use refs from snapshot
playwright-cli type "search query"
playwright-cli press Enter
playwright-cli snapshot
playwright-cli close
Commands
Core
playwright-cli open [url]
playwright-cli goto <url>
playwright-cli type "<text>"
playwright-cli click <ref>
playwright-cli dblclick <ref>
playwright-cli fill <ref> "<text>" [--submit]
playwright-cli drag <ref> <ref>
playwright-cli drop <ref> [--path=<file> | --data="mime=value"]
playwright-cli hover <ref>
playwright-cli select <ref> "<value>"
playwright-cli upload <path>
playwright-cli check <ref>
playwright-cli uncheck <ref>
playwright-cli snapshot
playwright-cli find "<text>" | --regex "<pattern>" [--regex "/pattern/i"]
playwright-cli eval "<js>" [ref]
playwright-cli dialog-accept ["text"]
playwright-cli dialog-dismiss
playwright-cli resize <w> <h>
playwright-cli close
Navigation & Keyboard
playwright-cli go-back | go-forward | reload
playwright-cli press <key> # Enter, ArrowDown, etc.
playwright-cli keydown | keyup <key>
Mouse
playwright-cli mousemove <x> <y>
playwright-cli mousedown [right]
playwright-cli mouseup [right]
playwright-cli mousewheel <dx> <dy>
Save as
playwright-cli screenshot [ref] [--filename=<f>] [--hires]
playwright-cli pdf --filename=<f>
Tabs
playwright-cli tab-list
playwright-cli tab-new [url]
playwright-cli tab-close [index]
playwright-cli tab-select <index>
Storage
playwright-cli state-save [file] | state-load <file>
playwright-cli cookie-list [--domain=] | cookie-get <name>
playwright-cli cookie-set <name> <val> [--domain= --httpOnly --secure]
playwright-cli cookie-delete <name> | cookie-clear
playwright-cli localstorage-list | localstorage-get <key>
playwright-cli localstorage-set <key> <val> | localstorage-delete <key> | localstorage-clear
playwright-cli sessionstorage-list | sessionstorage-get <key>
playwright-cli sessionstorage-set <key> <val> | sessionstorage-delete <key> | sessionstorage-clear
Network
playwright-cli route "<glob>" [--status= | --body=]
playwright-cli route-list
playwright-cli unroute ["<glob>"]
DevTools
playwright-cli console [warning|error]
playwright-cli requests
playwright-cli request <index>
playwright-cli run-code "<js>" | --filename=<f>
playwright-cli tracing-start | tracing-stop
playwright-cli recording-start # record user actions; print Playwright code on stop
playwright-cli recording-stop
playwright-cli video-start <file> | video-chapter "<title>" [--description= --duration=] | video-stop
playwright-cli video-show-actions [--duration= --position=] | video-hide-actions
playwright-cli show --annotate # UI review / design feedback
playwright-cli generate-locator <ref> [--raw]
playwright-cli highlight <ref> [--style=] | highlight <ref> --hide | highlight --hide
Raw output
--raw strips status/snapshot, returns only the result value.
playwright-cli --raw eval "JSON.stringify(performance.timing)"
playwright-cli --raw snapshot > before.yml
playwright-cli click e5
playwright-cli --raw snapshot > after.yml
diff before.yml after.yml
For JSON wrapping: playwright-cli list --json
Open parameters
playwright-cli open --browser=chrome|firefox|webkit|msedge
playwright-cli open --mobile | --device="iPhone 15"
playwright-cli open --persistent | --profile=/path/to/profile
playwright-cli attach --extension=chrome | --cdp=chrome|msedge|http://host:port
playwright-cli open --config=<file>
playwright-cli delete-data
Windows: See
references/windows-notes.mdfor URL escaping rules.
Snapshots
After each command, playwright-cli provides a snapshot of the current browser state.
playwright-cli snapshot [ref] [--filename=] [--depth=N] [--boxes]
playwright-cli find "<text>"
playwright-cli find --regex "\\$[0-9]+\\.[0-9]{2}"
Targeting elements
playwright-cli click e15 # ref from snapshot
playwright-cli click "#main > button.submit" # CSS selector
playwright-cli click "getByRole('button', { name: 'Submit' })" # role locator
playwright-cli click "getByTestId('submit-button')" # test id
Browser sessions
playwright-cli -s=<name> open [url] [--persistent | --profile=<dir>]
playwright-cli -s=<name> click e6
playwright-cli -s=<name> close
playwright-cli list
playwright-cli close-all
playwright-cli kill-all
Installation
# Check local version
npx --no-install playwright --version
# Use local
npx playwright cli
# Install global
npm install -g @playwright/cli@latest
When NOT to Use This Skill
- Authoring or maintaining versioned
@playwright/testspec files (useplaywright-e2e-testing). - Selenium/Java browser automation (use
webapp-selenium-testing). - Governing a large regression suite, tiers, or CI sharding (use
playwright-regression-testing). - Long-running recorded test suites — playwright-cli drives a single live, interactive session, not a parallel run.
Red Flags
- Relying on
--debug=clias a permanent test runner — it is an exploration/debug aid, not a CI executor. - Leaving background debug sessions running between scenarios — they leak state and ports; always stop them.
- Opening the app URL directly instead of going through the seed test — custom setup in the test is then missed.
- Using sleeps or
networkidleas a fix for timing issues — prefer web-first assertions.
References
- Playwright tests references/playwright-tests.md
- Request mocking references/request-mocking.md
- Running code references/running-code.md
- Session management references/session-management.md
- Storage state references/storage-state.md
- Test generation references/test-generation.md
- Tracing references/tracing.md
- Video recording references/video-recording.md
- Element attributes references/element-attributes.md
- Spec-driven testing references/spec-driven-testing.md
- Spec-driven healing references/spec-driven-heal.md
Verification
- Session lifecycle managed — every
playwright-cli open/-s=<name> openis paired with aclose/close-all; no orphan sessions left running. - Elements addressed by ref — interactions use snapshot refs (
e15) or generated locators, not guessed CSS selectors. - Evidence captured where needed — screenshots, traces, or console/request logs recorded for the task at hand.
- Background debug sessions stopped —
--debug=cliruns are terminated before moving on or finishing.
Version History
-
db514b5
Current 2026-09-03 10:28
新增 recording-start/stop 命令以对齐上游 v0.1.19,支持录制用户操作并生成 Playwright 代码。
-
4d874b6
2026-08-20 02:17
重构为紧凑的参考格式,行数减少52%,移除冗余内容,保持核心命令不变。
- 49935c0 2026-07-25 08:22


