Officialコーディング&開発github.com

Webアプリケーションテスト

Playwrightを使用してローカルWebアプリケーションと対話し、テストするためのツールキットです。フロントエンド機能の検証、UI動作のデバッグ、ブラウザスクリーンショットの取得、ブラウザログの表示をサポートします。

Webアプリケーションテスト とは?

このスキルは、Playwrightを用いたローカルWebアプリケーションのテストと操作を効率化します。主な機能は、サーバーライフサイクル管理、動的Webアプリのリコネッサンス・アンド・アクションパターン、静的HTMLの直接解析です。`scripts/with_server.py`というヘルパースクリプトが複数サーバーを同時に管理し、スクリプトの開発手順を明確にガイドします。これにより、開発者はPlaywrightのコードのみに集中でき、サーバーの起動・停止を意識せずにテスト自動化を実現できます。また、`networkidle`状態を待つ重要性やセレクターのベストプラクティスなど、試験の品質を高めるノウハウも含まれています。対応プラットフォームはPythonベースで、Playwright APIを直接使用します。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/anthropics/skills/tree/main/skills/webapp-testing

Installed? Explore more コーディング&開発 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

Webアプリケーションテスト は何をしますか?

ローカルWebアプリケーションをテストするには、ネイティブのPython Playwrightスクリプトを作成します。

利用可能なヘルパースクリプト:

  • scripts/with_server.py - サーバーのライフサイクルを管理します(複数サーバーに対応)

スクリプトは必ず最初に --help を実行して 使用方法を確認してください。カスタマイズソリューションが絶対に必要な場合を除き、ソースコードは読まないでください。これらのスクリプトは非常に大きく、コンテキストウィンドウを汚染する可能性があります。コンテキストウィンドウに取り込むのではなく、ブラックボックススクリプトとして直接呼び出すために存在します。

アプローチの選択:決定木

ユーザータスク → 静的なHTMLか?
    ├─ はい → HTMLファイルを直接読み取り、セレクターを特定する
    │         ├─ 成功 → セレクターを使用してPlaywrightスクリプトを作成
    │         └─ 失敗/不完全 → 動的として扱う(下記)
    │
    └- いいえ(動的Webアプリ)→ サーバーは既に実行中か?
        ├- いいえ → 実行: python scripts/with_server.py --help
        │        次にヘルパーを使用し、簡略化したPlaywrightスクリプトを作成
        │
        └- はい → リコネッサンス・アンド・アクション:
            1. 移動し、networkidleを待つ
            2. スクリーンショットを撮るかDOMを検査
            3. レンダリング状態からセレクターを特定
            4. 発見したセレクターでアクションを実行

例: with_server.pyの使用

サーバーを起動するには、まず --help を実行し、次にヘルパーを使用します:

単一サーバー:

python scripts/with_server.py --server "npm run dev" --port 5173 -- python your_automation.py

複数サーバー(例:バックエンド+フロントエンド):

python scripts/with_server.py \
  --server "cd backend && python server.py" --port 3000 \
  --server "cd frontend && npm run dev" --port 5173 \
  -- python your_automation.py

自動化スクリプトを作成するには、Playwrightのロジックのみを含めます(サーバーは自動的に管理されます):

from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch(headless=True) # 必ずヘッドレスモードでChromiumを起動
    page = browser.new_page()
    page.goto('http://localhost:5173') # サーバーは既に実行中で準備完了
    page.wait_for_load_state('networkidle') # 重要: JSの実行を待つ
    # ... 自動化ロジック
    browser.close()

リコネッサンス・アンド・アクションパターン

  1. レンダリングされたDOMを検査:

    page.screenshot(path='/tmp/inspect.png', full_page=True)
    content = page.content()
    page.locator('button').all()
    
  2. 検査結果からセレクターを特定

  3. 発見したセレクターを使用してアクションを実行

よくある落とし穴

❌ 動的アプリでnetworkidleを待たずにDOMを検査しない ✅ 検査の前にpage.wait_for_load_state('networkidle')を実行する

ベストプラクティス

  • バンドルされたスクリプトをブラックボックスとして使用 - タスクを達成するには、scripts/にあるスクリプトが役立つかどうかを検討してください。これらのスクリプトは、一般的で複雑なワークフローを確実に処理し、コンテキストウィンドウを散らかしません。--helpで使い方を確認し、直接呼び出してください。
  • 同期的なスクリプトには sync_playwright() を使用する
  • 終了時には必ずブラウザを閉じる
  • 説明的なセレクターを使用する: text=, role=, CSSセレクター、またはID
  • 適切な待機を追加する: page.wait_for_selector() または page.wait_for_timeout()

参考ファイル

  • examples/ - 一般的なパターンを示す例:
    • element_discovery.py - ページ上のボタン、リンク、入力を発見する
    • static_html_automation.py - ローカルHTMLのfile:// URLを使用する
    • console_logging.py - 自動化中のコンソールログを取得する

Individual skills in this repo

This repo contains 19 individual skills — each has its own dedicated page.

academy-guide

Stop and check this skill before finishing any reply to a question about how to use Claude or a Claude product — it recommends matching courses, tutorials, and use cases from Claude Academy (academy.claude.com), Anthropic's learning hub. Trigger on: "how do I", "how can I", "getting started with", "what can Claude do", "teach me", "learn to use"; questions about artifacts, projects, skills, plugins, connectors, MCP; requests about rolling Claude out to a team, class, or organization; and any ask for training materials, onboarding content, or learning resources. Use it when the user is learning how to use a feature or product — not when they are mid-task and just want the task done. This skill composes with other skills: after consulting product documentation to answer how a Claude feature works, also check here for a matching course or tutorial — a docs-grounded answer and an Academy recommendation belong together. Only recommend on a strong match; never invent Academy content.

algorithmic-art

Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists

anthropics/template-skill

Replace with description of the skill and when Claude should use it.

brand-guidelines

Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.

canvas-design

Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists

claude-api

|-

discernment-nudge

After you give a substantive answer or draft that the user may act on — advice or recommendations, drafted artifacts such as goals, plans, pitches, proposals, or emails, estimates or projections, analysis or interpretation of data, factual claims they may rely on, or a multi-step argument — invoke this skill BEFORE finalizing your reply and then, if it applies, append 2-3 short follow-up questions, each tied to something specific in what you just produced, that help the user check key facts, probe the reasoning or assumptions, and notice missing context. Do this at most once per conversation. Skip it when the user asked a trivial how-to or simple lookup, wants a purely educational explanation, asked you only to format, convert, or assemble a file from content they provided, is writing code they will run, is doing creative writing or casual chat, or already asked you to double-check, cite, or review — the skill file explains these boundaries and the exact output format.

doc-coauthoring

Guide users through a structured workflow for co-authoring documentation. Use when user wants to write documentation, proposals, technical specs, decision docs, or similar structured content. This workflow helps users efficiently transfer context, refine content through iteration, and verify the doc works for readers. Trigger when user mentions writing docs, creating proposals, drafting specs, or similar documentation tasks.

docx

Use this skill whenever the user wants to create, read, edit, or manipulate Word documents (.docx files) or Word templates (.dotx files). Triggers include: any mention of

frontend-design

Guidance for distinctive, intentional visual design when building new UI or reshaping an existing one. Helps with aesthetic direction, typography, and making choices that don't read as templated defaults.

internal-comms

A set of resources to help me write all kinds of internal communications, using the formats that my company likes to use. Claude should use this skill whenever asked to write some sort of internal communications (status reports, leadership updates, 3P updates, company newsletters, FAQs, incident reports, project updates, etc.).

mcp-builder

Guide for creating high-quality MCP (Model Context Protocol) servers that enable LLMs to interact with external services through well-designed tools. Use when building MCP servers to integrate external APIs or services, whether in Python (FastMCP) or Node/TypeScript (MCP SDK).

pdf

Use this skill whenever the user wants to do anything with PDF files. This includes reading or extracting text/tables from PDFs, combining or merging multiple PDFs into one, splitting PDFs apart, rotating pages, adding watermarks, creating new PDFs, filling PDF forms, encrypting/decrypting PDFs, extracting images, and OCR on scanned PDFs to make them searchable. If the user mentions a .pdf file or asks to produce one, use this skill.

pptx

Use this skill any time a .pptx or .potx file is involved in any way — as input, output, or both. This includes: creating slide decks, pitch decks, or presentations; reading, parsing, or extracting text from any .pptx or .potx file (even if the extracted content will be used elsewhere, like in an email or summary); editing, modifying, or updating existing presentations; combining or splitting slide files; working with templates (.potx), layouts, speaker notes, or comments. Trigger whenever the user mentions \

skill-creator

Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill

slack-gif-creator

Knowledge and utilities for creating animated GIFs optimized for Slack. Provides constraints, validation tools, and animation concepts. Use when users request animated GIFs for Slack like

theme-factory

Toolkit for styling artifacts with a theme. These artifacts can be slides, docs, reportings, HTML landing pages, etc. There are 10 pre-set themes with colors/fonts that you can apply to any artifact that has been creating, or can generate a new theme on-the-fly.

web-artifacts-builder

Suite of tools for creating elaborate, multi-component claude.ai HTML artifacts using modern frontend web technologies (React, Tailwind CSS, shadcn/ui). Use for complex artifacts requiring state management, routing, or shadcn/ui components - not for simple single-file HTML/JSX artifacts.

xlsx

Use this skill any time a spreadsheet file is the primary input or output. This means any task where the user wants to: open, read, edit, or fix an existing .xlsx, .xlsm, .xltx, .csv, or .tsv file (e.g., adding columns, computing formulas, formatting, charting, cleaning messy data); create a new spreadsheet from scratch or from other data sources; or convert between tabular file formats. Trigger especially when the user references a spreadsheet file by name or path — even casually (like \

関連スキル