playwright-cli

GitHub

通过 CLI 驱动浏览器进行导航、交互、截图和调试。适用于页面检查、网络模拟、会话管理及交互式调试,不用于编写测试脚本。

skills/playwright-cli/SKILL.md fugazi/test-automation-skills-agents

Trigger Scenarios

需要手动或脚本化操作浏览器界面 获取页面快照或截图以辅助排查问题 在命令行中进行前端页面的交互式调试

Install

npx skills add fugazi/test-automation-skills-agents --skill playwright-cli -g -y
More Options

Use without installing

npx skills use fugazi/test-automation-skills-agents@playwright-cli

指定 Agent (Claude Code)

npx skills add fugazi/test-automation-skills-agents --skill playwright-cli -a claude-code -g -y

安装 repo 全部 skill

npx skills add fugazi/test-automation-skills-agents --all -g -y

预览 repo 内 skill

npx skills add fugazi/test-automation-skills-agents --list

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.md for 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/test spec files (use playwright-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=cli as 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 networkidle as a fix for timing issues — prefer web-first assertions.

References


Verification

  • Session lifecycle managed — every playwright-cli open/-s=<name> open is paired with a close/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=cli runs 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

Same Skill Collection

skills/a11y-playwright-testing/SKILL.md
skills/accessibility-selenium-testing/SKILL.md
skills/api-testing/SKILL.md
skills/grill-me-qa/SKILL.md
skills/playwright-e2e-testing/SKILL.md
skills/playwright-regression-testing/SKILL.md
skills/qa-investigation/SKILL.md
skills/qa-manual-istqb/SKILL.md
skills/qa-test-planner/SKILL.md
skills/webapp-playwright-testing/SKILL.md
skills/webapp-selenium-testing/SKILL.md

Metadata

Files
0
Version
db514b5
Hash
83261046
Indexed
2026-07-25 08:22

- 위키
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-09-17 04:45
浙ICP备14020137号-1