browser-testing について
Web 開発者やテスター向けに、Browser DevTools CLI で操作やフォーム確認を自動化するブラウザーテストスキルです。ページ内容の取得に加え、HTTP リクエストのモックや傍受にも対応します。
主な機能
- 01ブラウザーの移動と操作
- 02フォーム入力と検証チェック
- 03スクリーンショット・HTML・テキスト・PDFの取得
- 04HTTP レスポンスのモックと傍受
- 05セッションを使った複数ステップのテスト
活用シーン
- 01ログインやサインアップのフローをテスト
- 02フォーム検証やウィザードの手順を確認
- 03操作後のページ状態を取得
- 04モック HTTP レスポンスでページをテスト
MCP 対応
Browser DevTools CLI を使ってブラウザーテストと操作を自動化します。入力には MCP サーバーやクライアント接続についての説明はありません。
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ serkan-ozal/ browser-devtools-skills --skill browser-testingインストール後、Claude Code で/browser-testingを入力して読み込まれたか確認します。
詳細
ブラウザーテストスキル
Browser DevTools CLI を使用したブラウザーの自動テスト、操作の自動化、フォームテストです。
使用する場面
このスキルは、次のような場合に有効になります。
- ユーザーが Web ページまたはアプリケーションのテストを依頼した場合
- ユーザーがブラウザー操作の自動化を希望する場合
- ユーザーが UI の動作確認を必要としている場合
- ユーザーがフォーム送信の自動化を希望する場合
- ユーザーがフォームのバリデーションテストを必要としている場合
- ユーザーが複数ステップのフォームやウィザードに言及した場合
- ユーザーがログイン/サインアップのフローをテストしたい場合
機能
ナビゲーション
browser-devtools-cli navigation go-to --url "https://example.com"
browser-devtools-cli navigation go-back-or-forward --direction back
browser-devtools-cli navigation go-back-or-forward --direction forward
browser-devtools-cli navigation reload
操作
すべての操作では、ARIA スナップショットの CSS セレクターまたは ref(e1、@e1)を指定できます。
browser-devtools-cli interaction click --selector "#button"
browser-devtools-cli interaction click --selector "e1" # ref from a11y take-aria-snapshot
browser-devtools-cli interaction fill --selector "#input" --value "text"
browser-devtools-cli interaction select --selector "#dropdown" --value "option"
browser-devtools-cli interaction hover --selector "#element"
browser-devtools-cli interaction press-key --key "Enter"
browser-devtools-cli interaction scroll --mode bottom
browser-devtools-cli interaction drag --source-selector "#drag" --target-selector "#drop"
コンテンツの取得
browser-devtools-cli content take-screenshot --name "screenshot"
browser-devtools-cli content get-as-html
browser-devtools-cli content get-as-text
browser-devtools-cli content save-as-pdf --name "page"
同期
browser-devtools-cli sync wait-for-network-idle
モックとスタブ
browser-devtools-cli stub mock-http-response --pattern "**/api/**" --response '{"status":200}'
browser-devtools-cli stub intercept-http-request --pattern "**/api/**" --modifications '{"headers":{}}'
browser-devtools-cli stub list
browser-devtools-cli stub clear
基本的なテストのワークフロー
- 移動:テスト対象のページに移動します
- 待機:ページが完全に読み込まれるまで待ちます
- スナップショット(任意):
a11y take-aria-snapshotを実行して、要素を安定して指定するための ref(e1、e2)を取得します - 操作:クリック、入力、スクロールを行います(ref には
--selector "e1"、または CSS セレクターを使用します) - 確認:ページの状態を確認し、スクリーンショットを撮影します
- 記録:結果を報告します
フォーム自動化のパターン
基本的なフォーム入力
# Fill text input
browser-devtools-cli interaction fill \
--selector "#email" \
--value "[email protected]"
# Fill password
browser-devtools-cli interaction fill \
--selector "#password" \
--value "SecurePass123"
# Click submit
browser-devtools-cli interaction click \
--selector "button[type=submit]"
ドロップダウンの選択
browser-devtools-cli interaction select \
--selector "#country" \
--value "US"
チェックボックス/ラジオボタン
# Check checkbox
browser-devtools-cli interaction click \
--selector "#terms-checkbox"
# Select radio option
browser-devtools-cli interaction click \
--selector "input[name=plan][value=premium]"
複数ステップのウィザード
SESSION="--session-id wizard-test"
# Step 1: Personal Info
browser-devtools-cli $SESSION interaction fill --selector "#name" --value "John Doe"
browser-devtools-cli $SESSION interaction fill --selector "#email" --value "[email protected]"
browser-devtools-cli $SESSION interaction click --selector "#next-step"
# Wait for step 2
browser-devtools-cli $SESSION sync wait-for-network-idle
# Step 2: Address
browser-devtools-cli $SESSION interaction fill --selector "#address" --value "123 Main St"
browser-devtools-cli $SESSION interaction select --selector "#state" --value "CA"
browser-devtools-cli $SESSION interaction click --selector "#next-step"
# Step 3: Confirm
browser-devtools-cli $SESSION sync wait-for-network-idle
browser-devtools-cli $SESSION interaction click --selector "#submit"
バリデーションテスト
必須フィールドのテスト
# Submit empty form
browser-devtools-cli interaction click --selector "button[type=submit]"
# Check for error messages
browser-devtools-cli content get-as-text --selector ".error-message"
無効な入力のテスト
# Invalid email
browser-devtools-cli interaction fill --selector "#email" --value "not-an-email"
browser-devtools-cli interaction click --selector "button[type=submit]"
# Check validation error
browser-devtools-cli content get-as-html --selector ".email-error"
セッションベースのテスト
SESSION="--session-id my-test"
# Navigate
browser-devtools-cli $SESSION navigation go-to --url "https://example.com"
# Interact
browser-devtools-cli $SESSION interaction click --selector ".login-btn"
browser-devtools-cli $SESSION interaction fill --selector "#email" --value "[email protected]"
# Verify
browser-devtools-cli $SESSION content take-screenshot --name "after-login"
# Cleanup
browser-devtools-cli session delete my-test
ベストプラクティス
- 複数ステップのフローにはセッションを使用します
- ページ遷移や操作の後は、ネットワークがアイドル状態になるまで待機します
- 確認のため、重要な操作の後にスクリーンショットを撮影します
- 誤った要素を選択しないよう、具体的なセレクターを使用します
- バリデーションテストでは、まず空のまま送信します
- 入力前にフィールドをクリアします(最初にフィールドをクリアする
interaction fillを使用します) - 待機方法を使って動的なフィールドに対応します
- 記録用に、エラーの後にスクリーンショットを撮影します
- 必要に応じて手順をまとめて実行します。長いフローでは、
run execute --code "..."とcallTool()を使うと、ラウンドトリップを減らせます(browser-devtools-cli の execute リファレンスを参照)。
コメント
Markdown 対応