Skip to content
cccskills
FreePublished on GitHub

agent-browser

Agent Browser(Headlessブラウザ自動化CLI)を使ったUI検証・E2Eテスト・スクリーンショット取得の判断軸。アクセシビリティツリーベースの要素選択を優先し、壊れにくいテスト設計を目指す。

The English summary is being prepared. Showing the original description.

See how to install

Files included (1)

  • SKILL.md5.9 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Agent Browser Skill

参照(公式)

  • GitHub
  • インストール: npm install -g agent-browser && agent-browser install

発火条件

  • doc/input/rdd.md に Agent Browser や E2Eテスト UI検証 が記載されている場合、このSkillの方針をデフォルト採用する。
  • 記載がなくても、ユーザーの依頼がブラウザ自動化/UI確認/スクリーンショット比較/E2Eテストに該当するなら適用する。

このSkillの基本方針

  • 基本方針: AIエージェント向けHeadlessブラウザCLI。UI検証・E2Eテスト・視覚的確認に使う。
  • 要素選択: アクセシビリティツリー(@e1 等)やセマンティックロケータ(role/label)を優先。CSSセレクタは最終手段。
  • テスト設計: 壊れにくいテストを書く。実装詳細(class名/id)に依存しない。
  • パフォーマンス: グローバルインストール(npm i -g)を推奨。npx 経由はNode.jsフォールバックで遅い。

思想(判断ルール)

  1. アクセシビリティファースト: 要素はrole/label/textで特定する。CSSセレクタ依存はリファクタに弱い。
  2. 最小スコープ: テストはユーザー操作単位で小さく。ページ全体の網羅より重要フローの確認を優先。
  3. スクリーンショットは証拠: 視覚的な確認が必要な場面では積極的に撮る。差分検証でリグレッションを防ぐ。
  4. 待機は明示的に: 暗黙の sleep を避け、要素の出現/状態変化を待つ。

主要コマンド(よく使うもの)

ページ操作

agent-browser open <url>              # ページを開く
agent-browser goto <url>              # 別URLへ遷移
agent-browser screenshot [file]       # スクリーンショット取得
agent-browser pdf [file]              # PDF保存

要素操作

agent-browser click <selector>        # クリック
agent-browser fill <selector> <text>  # 入力欄にテキスト入力
agent-browser press <key>             # キー押下(Enter等)
agent-browser scroll <direction>      # スクロール

要素選択の優先順位

# 1. セマンティックロケータ(推奨)
agent-browser click "role=button[name='Submit']"
agent-browser fill "role=textbox[name='Email']" "test@example.com"

# 2. アクセシビリティツリー参照
agent-browser click @e1               # ツリー上のID

# 3. テキストマッチ
agent-browser click "text=ログイン"

# 4. CSSセレクタ(最終手段)
agent-browser click "#submit-btn"

情報取得

agent-browser text [selector]         # テキスト取得
agent-browser title                   # ページタイトル
agent-browser url                     # 現在のURL
agent-browser count <selector>        # 要素数

デバイス・環境設定

agent-browser --viewport 375x812      # モバイルビューポート
agent-browser --device "iPhone 15"    # デバイスエミュレーション
agent-browser --color-scheme dark     # ダークモード

dev限定E2Eフックの標準装備

ゲーム/アニメーション系など「発生タイミングが不確定」な演出は、devビルド限定でwindowフックを装備すると検証が安定する:

  • 決定的シード: URLパラメータで乱数シードを指定できるようにする(範囲外はフォールバック)
  • pause/resume: 演出の任意の瞬間を凍結してスクリーンショット検証できるようにする
  • fps計測: startFps/endFps 等でrAFのdtを収集し、純粋関数で平均/最低fpsを算出する

狙い: 「発生を待って撮る」のではなく「決定的に発生させ、凍結して撮る」。非機能要件(fps下限)もE2Eで実測アサートできる。

出力フォーマット(必ずこの順)

  1. 推奨方針(1〜3行)
  2. 理由(テスト安定性 / 保守性 / ユーザー視点)
  3. 設計案(テスト対象フロー / 要素選択戦略 / スクリーンショット計画 / 環境設定)
  4. チェックリスト(実装前に確認)
  5. 落とし穴(避けるべき)
  6. 次アクション(小さく試す順)

チェックリスト

  • agent-browser がグローバルインストール済みか(agent-browser --version)
  • Chromiumがインストール済みか(agent-browser install)
  • 要素選択はアクセシビリティベースか(CSSセレクタに逃げていないか)
  • テストはユーザー操作の単位で分割されているか
  • 暗黙の sleep ではなく明示的な待機条件を使っているか
  • スクリーンショットの保存先・命名規則は決まっているか

よくある落とし穴

  • npx agent-browser で毎回起動すると遅い(グローバルインストール推奨)
  • CSSクラス名に依存したセレクタがリファクタで全壊する
  • sleep(3000) のような固定待機はCI環境で不安定になる
  • スクリーンショット差分がフォントレンダリングの差で誤検知する(閾値設定が必要)
  • Headless環境でのビューポートサイズ未指定でレイアウトが実機と異なる
  • agent-browser eval はCLI側で結果をJSONエンコードして返す。ページ内スクリプトでJSON.stringifyして返すと二重エンコードになり、受け側のJSON.parse一回では文字列のままでプロパティ参照が全部undefinedになる(無言で壊れる)。ページ側は素のオブジェクトを返すこと

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

セマンティックHTML/JSXとWAI-ARIAを「最小で正しく」適用し、キーボード操作・スクリーンリーダ・コントラスト等を満たす実装を作るための判断軸。ネイティブ要素優先、ARIAの過剰使用を避ける。

The English summary is being prepared. Showing the original description.

mae616/ai-template9Updated Oct 6, 2026

ディズニーの12原則とジブリ的自然運動をベースに、UIアニメーションの「なぜ動かすか」「どう動かすか」を判断する。アニメーション/モーション/トランジション設計の相談で、ツール非依存の概念的判断軸として使う。

The English summary is being prepared. Showing the original description.

mae616/ai-template9Updated Oct 6, 2026

アーキテクチャ設計(境界/依存/データフロー/非機能/運用)を、制約とトレードオフで言語化し、ADR-liteで合意形成しながら段階的に形にする。doc/input/rdd.md にアーキテクチャ/非機能/運用の要求がある、または設計判断(分割/責務/インタフェース/データ整合/観測性/スケール)相談で使う。

The English summary is being prepared. Showing the original description.

mae616/ai-template9Updated Oct 6, 2026

事業仮説を支える一次/二次情報を整理し、意思決定に足る「根拠」「不確実性」「次の調査」を可視化する。でたらめな引用や推測の断言を避け、出典の実在を重視する。

The English summary is being prepared. Showing the original description.

mae616/ai-template9Updated Oct 6, 2026

体験品質(動き/触感/視線誘導)を「実装可能な制約」に落とし、アクセシビリティとパフォーマンスを犠牲にせずに表現を実現する。UIの表現・アニメーション・インタラクション設計/実装の相談で使う。

The English summary is being prepared. Showing the original description.

mae616/ai-template9Updated Oct 6, 2026

設計と実装を「最小で正確」に進め、差分思考で品質と速度を両立する。設計の溶け込み(責務不明/重複/暫定対応)を防ぎ、レビュー可能な変更へ落とし込むときに使う。

The English summary is being prepared. Showing the original description.

mae616/ai-template9Updated Oct 6, 2026

See all skills by mae616

Report a problem with this skill