playwright-cli について
playwright-cli は、コマンドラインからブラウザー操作や UI ワークフローを行うためのスキルです。ページ操作、スナップショット、複数タブ、ストレージ、ネットワークルーティング、DevTools の確認に対応します。
主な機能
- 01ページの移動と操作
- 02スナップショット参照やロケーターで要素を指定
- 03タブとブラウザーセッションの管理
- 04スクリーンショット、PDF、スナップショットの保存
- 05リクエストとコンソール出力の確認
- 06ネットワーク応答のモックとトレース
活用シーン
- 01フォームを送信してページの変化を確認
- 02複数タブのブラウザーワークフローを実行
- 03コンソールエラーやネットワークリクエストを調査
- 04レビュー用のスクリーンショットや PDF を取得
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ connorads/ dotfiles --skill playwright-cliインストール後、Claude Code で/playwright-cliを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/element-attributes.mdplaywright-tests.mdrequest-mocking.mdrunning-code.mdsession-management.mdstorage-state.mdtest-generation.mdtracing.mdvideo-recording.md詳細
playwright-cli によるブラウザー自動化
クイックスタート
# open new browser
playwright-cli open
# navigate to a page
playwright-cli goto https://playwright.dev
# interact with the page using refs from the snapshot
playwright-cli click e15
playwright-cli type "page.click"
playwright-cli press Enter
# take a screenshot (rarely used, as snapshot is more common)
playwright-cli screenshot
# close the browser
playwright-cli close
コマンド
コア
playwright-cli open
# open and navigate right away
playwright-cli open https://example.com/
playwright-cli goto https://playwright.dev
playwright-cli type "search query"
playwright-cli click e3
playwright-cli dblclick e7
# --submit presses Enter after filling the element
playwright-cli fill e5 "[email protected]" --submit
playwright-cli drag e2 e8
# drop files or data onto an element (from outside the page)
playwright-cli drop e4 --path=./image.png
playwright-cli drop e4 --data="text/plain=hello world"
playwright-cli hover e4
playwright-cli select e9 "option-value"
playwright-cli upload ./document.pdf
playwright-cli check e12
playwright-cli uncheck e12
playwright-cli snapshot
# search the snapshot for text or a regexp, returns matching nodes with surrounding context
playwright-cli find "Sign in"
playwright-cli find --regex "Sign (in|up)"
# wrap the regexp in slashes to add flags, e.g. /i for case-insensitive
playwright-cli find --regex "/sign (in|up)/i"
playwright-cli eval "document.title"
playwright-cli eval "el => el.textContent" e5
# get element id, class, or any attribute not visible in the snapshot
playwright-cli eval "el => el.id" e5
playwright-cli eval "el => el.getAttribute('data-testid')" e5
playwright-cli dialog-accept
playwright-cli dialog-accept "confirmation text"
playwright-cli dialog-dismiss
playwright-cli resize 1920 1080
playwright-cli close
ナビゲーション
playwright-cli go-back
playwright-cli go-forward
playwright-cli reload
キーボード
playwright-cli press Enter
playwright-cli press ArrowDown
playwright-cli keydown Shift
playwright-cli keyup Shift
マウス
playwright-cli mousemove 150 300
playwright-cli mousedown
playwright-cli mousedown right
playwright-cli mouseup
playwright-cli mouseup right
playwright-cli mousewheel 0 100
名前を付けて保存
playwright-cli screenshot
playwright-cli screenshot e5
playwright-cli screenshot --filename=page.png
playwright-cli screenshot --hires
playwright-cli pdf --filename=page.pdf
タブ
playwright-cli tab-list
playwright-cli tab-new
playwright-cli tab-new https://example.com/page
playwright-cli tab-close
playwright-cli tab-close 2
playwright-cli tab-select 0
ストレージ
playwright-cli state-save
playwright-cli state-save auth.json
playwright-cli state-load auth.json
# Cookies
playwright-cli cookie-list
playwright-cli cookie-list --domain=example.com
playwright-cli cookie-get session_id
playwright-cli cookie-set session_id abc123
playwright-cli cookie-set session_id abc123 --domain=example.com --httpOnly --secure
playwright-cli cookie-delete session_id
playwright-cli cookie-clear
# LocalStorage
playwright-cli localstorage-list
playwright-cli localstorage-get theme
playwright-cli localstorage-set theme dark
playwright-cli localstorage-delete theme
playwright-cli localstorage-clear
# SessionStorage
playwright-cli sessionstorage-list
playwright-cli sessionstorage-get step
playwright-cli sessionstorage-set step 3
playwright-cli sessionstorage-delete step
playwright-cli sessionstorage-clear
ネットワーク
playwright-cli route "**/*.jpg" --status=404
playwright-cli route "https://api.example.com/**" --body='{"mock": true}'
playwright-cli route-list
playwright-cli unroute "**/*.jpg"
playwright-cli unroute
DevTools
playwright-cli console
playwright-cli console warning
playwright-cli requests
playwright-cli request 5
playwright-cli run-code "async page => await page.context().grantPermissions(['geolocation'])"
playwright-cli run-code --filename=script.js
playwright-cli tracing-start
playwright-cli tracing-stop
playwright-cli video-start video.webm
playwright-cli video-chapter "Chapter Title" --description="Details" --duration=2000
playwright-cli video-stop
# annotate each subsequent action (click, type, ...) with a callout naming the action and highlighting the target
playwright-cli video-show-actions --duration=600 --position=top-right
playwright-cli video-hide-actions
# launch the dashboard for UI review / design feedback — user annotates the page, you receive the annotated screenshot, snapshot, and notes
playwright-cli show --annotate
# generate a Playwright locator for an element from its ref or selector
playwright-cli generate-locator e5 --raw
# show a persistent highlight overlay for an element, optionally with a custom style
playwright-cli highlight e5
playwright-cli highlight e5 --style="outline: 3px dashed red"
# hide a single element highlight, or all page highlights when no target is given
playwright-cli highlight e5 --hide
playwright-cli highlight --hide
生出力
グローバルな --raw オプションを指定すると、ページのステータス、生成されたコード、スナップショットのセクションが出力から除外され、結果の値のみが返されます。コマンドの出力をほかのツールに渡す場合に使用します。出力を生成しないコマンドは何も返しません。
playwright-cli --raw eval "JSON.stringify(performance.timing)" | jq '.loadEventEnd - .navigationStart'
playwright-cli --raw eval "JSON.stringify([...document.querySelectorAll('a')].map(a => a.href))" > links.json
playwright-cli --raw snapshot > before.yml
playwright-cli click e5
playwright-cli --raw snapshot > after.yml
diff before.yml after.yml
TOKEN=$(playwright-cli --raw cookie-get session_id)
playwright-cli --raw localstorage-get theme
各応答を JSON でラップした構造化出力を取得するには、--json を渡します
playwright-cli list --json
起動パラメーター
# Use specific browser when creating session
playwright-cli open --browser=chrome
playwright-cli open --browser=firefox
playwright-cli open --browser=webkit
playwright-cli open --browser=msedge
# Emulate a generic mobile device (Pixel 10 for Chromium, iPhone 17 for WebKit).
# Prefer this when a mobile layout is acceptable: mobile pages are usually
# lighter, so snapshots are smaller and cheaper.
playwright-cli open --mobile
playwright-cli open --device="iPhone 15"
# Use persistent profile (by default profile is in-memory)
playwright-cli open --persistent
# Use persistent profile with custom directory
playwright-cli open --profile=/path/to/profile
# Connect to browser via Playwright Extension
playwright-cli attach --extension=chrome
# Connect to a running Chrome or Edge by channel name
playwright-cli attach --cdp=chrome
playwright-cli attach --cdp=msedge
# Connect to a running browser via CDP endpoint
playwright-cli attach --cdp=http://localhost:9222
# Start with config file
playwright-cli open --config=my-config.json
# Close the browser
playwright-cli close
# Detach from an attached browser (leaves the external browser running)
playwright-cli -s=msedge detach
# Delete user data for the default session
playwright-cli delete-data
Windows での & を含む URL
Windows では、cmd.exe と PowerShell は & をコマンド区切り文字として扱うため、複数のクエリパラメーターを含む URL は playwright-cli の実行前に途中で切り詰められます。cmd.exe では & を ^& でエスケープするか、PowerShell では --% を使用してください。
playwright-cli goto "https://example.com/?a=1^&b=2"
playwright-cli --% goto "https://example.com/?a=1&b=2"
スナップショット
各コマンドの実行後、playwright-cli は現在のブラウザー状態のスナップショットを提供します。
> playwright-cli goto https://example.com
### Page
- Page URL: https://example.com/
- Page Title: Example Domain
### Snapshot
[Snapshot](.playwright-cli/page-2026-02-14T19-22-42-679Z.yml)
playwright-cli snapshot コマンドを使って、必要に応じてスナップショットを取得することもできます。以下のオプションはすべて、必要に応じて組み合わせて使用できます。
# default - save to a file with timestamp-based name
playwright-cli snapshot
# save to file, use when snapshot is a part of the workflow result
playwright-cli snapshot --filename=after-click.yaml
# snapshot an element instead of the whole page
playwright-cli snapshot "#main"
# limit snapshot depth for efficiency, take a partial snapshot afterwards
playwright-cli snapshot --depth=4
playwright-cli snapshot e34
# include each element's bounding box as [box=x,y,width,height]
playwright-cli snapshot --boxes
# search a large snapshot instead of capturing it all — returns matching nodes
# with 3 lines of context around each match (like grep -C)
playwright-cli find "Add to cart"
playwright-cli find --regex "\\$[0-9]+\\.[0-9]{2}"
要素の指定
デフォルトでは、ページ要素を操作する際にスナップショットの参照情報を使用します。
# get snapshot with refs
playwright-cli snapshot
# interact using a ref
playwright-cli click e15
CSS セレクターや Playwright ロケーターを使用することもできます。
# css selector
playwright-cli click "#main > button.submit"
# role locator
playwright-cli click "getByRole('button', { name: 'Submit' })"
# test id
playwright-cli click "getByTestId('submit-button')"
ブラウザーセッション
# create new browser session named "mysession" with persistent profile
playwright-cli -s=mysession open example.com --persistent
# same with manually specified profile directory (use when requested explicitly)
playwright-cli -s=mysession open example.com --profile=/path/to/profile
playwright-cli -s=mysession click e6
playwright-cli -s=mysession close # stop a named browser
playwright-cli -s=mysession delete-data # delete user data for persistent session
playwright-cli list
# Close all browsers
playwright-cli close-all
# Forcefully kill all browser processes
playwright-cli kill-all
インストール
グローバルな playwright-cli コマンドが使用できない場合は、npx playwright cli でローカル版を試してください。
npx --no-install playwright --version
ローカル版が使用できる場合は、すべてのコマンドで npx playwright cli を使用してください。そうでない場合は、playwright-cli をグローバルコマンドとしてインストールしてください。
npm install -g @playwright/cli@latest
例:フォームの送信
playwright-cli open https://example.com/form
playwright-cli snapshot
playwright-cli fill e1 "[email protected]"
playwright-cli fill e2 "password123"
playwright-cli click e3
playwright-cli snapshot
playwright-cli close
例:複数タブのワークフロー
playwright-cli open https://example.com
playwright-cli tab-new https://example.com/other
playwright-cli tab-list
playwright-cli tab-select 0
playwright-cli snapshot
playwright-cli close
例:DevTools を使ったデバッグ
playwright-cli open https://example.com
playwright-cli click e4
playwright-cli fill e7 "test"
playwright-cli console
playwright-cli requests
playwright-cli close
playwright-cli open https://example.com
playwright-cli tracing-start
playwright-cli click e4
playwright-cli fill e7 "test"
playwright-cli tracing-stop
playwright-cli close
例:対話型セッション
UI のレビューやデザインに関するフィードバックをユーザーに求めます。ユーザーは表示中のページにボックスを描いてコメントを入力し、注釈付きのスクリーンショット、マークされた領域のスナップショット、ユーザーのメモが届きます。ユーザーが「UI review」や「design feedback」を求める場合、または「ユーザーに意見、希望、意図を尋ねる」よう依頼する場合は、これを使用してください。
playwright-cli open https://example.com
playwright-cli show --annotate
特定のタスク
- Playwright テストの実行とデバッグ references/playwright-tests.md
- リクエストのモック references/request-mocking.md
- Playwright コードの実行 references/running-code.md
- ブラウザーセッションの管理 references/session-management.md
- ストレージ状態(Cookie、localStorage) references/storage-state.md
- テストの生成(計画/生成/修復) references/test-generation.md
- トレース references/tracing.md
- 動画の録画 references/video-recording.md
- 要素属性の確認 references/element-attributes.md