| name | playwright-cli |
| description | Automate browser interactions, test web pages and work with Playwright tests via the playwright-cli command. |
| allowed-tools | Bash(playwright-cli:*) Bash(npx:*) Bash(npm:*) |
| confidence | medium |
| source | https://github.com/microsoft/playwright-cli/blob/main/skills/playwright-cli/SKILL.md |
Browser Automation with playwright-cli
The playwright-cli is installed globally on this machine (@playwright/cli). Use it for live browser-based verification of the hyoka site (go run . serve).
Quick start
playwright-cli open http://localhost:8080
playwright-cli snapshot
playwright-cli click e15
playwright-cli fill e5 "user@example.com" --submit
playwright-cli press Enter
playwright-cli screenshot --filename=verify.png
playwright-cli close
After EVERY command, playwright-cli prints a snapshot YAML file path. Read that file (or use playwright-cli snapshot again) to see the current page state and find element refs (e1, e2, ...) for the next interaction.
Core commands
playwright-cli open [url]
playwright-cli goto <url>
playwright-cli snapshot
playwright-cli snapshot --filename=foo.yml
playwright-cli click <ref>
playwright-cli fill <ref> "text"
playwright-cli type "text"
playwright-cli press Enter
playwright-cli hover <ref>
playwright-cli select <ref> "value"
playwright-cli eval "expr"
playwright-cli eval "el => el.textContent" e5
playwright-cli screenshot --filename=foo.png
playwright-cli screenshot e5 --filename=elem.png
playwright-cli resize 1920 1080
playwright-cli go-back / go-forward / reload
playwright-cli close
Targeting elements
Default: refs from snapshots (e15, e23). Also supports CSS, role locators, test ids:
playwright-cli click "#main > button.submit"
playwright-cli click "getByRole('button', { name: 'Submit' })"
playwright-cli click "getByTestId('submit-button')"
Raw output (for piping/diffing)
playwright-cli --raw eval "document.title"
playwright-cli --raw snapshot > before.yml
playwright-cli click e5
playwright-cli --raw snapshot > after.yml
diff before.yml after.yml
Tabs / sessions
playwright-cli tab-new https://example.com
playwright-cli tab-list
playwright-cli tab-select 0
playwright-cli tab-close
playwright-cli -s=mysession open url
playwright-cli -s=mysession click e6
playwright-cli -s=mysession close
playwright-cli list
playwright-cli close-all
DevTools
playwright-cli console
playwright-cli console warning
playwright-cli network
playwright-cli tracing-start / tracing-stop
Verification recipe (hyoka site)
playwright-cli open http://localhost:8080
playwright-cli snapshot --filename=/tmp/home.yml
playwright-cli --raw eval "document.title"
playwright-cli --raw eval "document.querySelector('svg[aria-label]')?.getAttribute('aria-label')"
playwright-cli click eN
playwright-cli screenshot --filename=eval-detail.png
playwright-cli close
Installation (already done on this machine)
npm install -g @playwright/cli@latest
If playwright-cli isn't on PATH, fall back to npx playwright-cli.