スキル

webapp-testing:Playwright でローカル Web アプリを測る

Python Playwright でローカルのフロントを確かめるときに使う。先に helper へ --help を走らせ、chromium は headless で起動し、動的ページは networkidle を待ってから DOM を見る。

公式ソース · webapp-testing

インストール

scripts/with_server.py --help

誰向けか

Playwright でローカル Web アプリとやり取りし、テストするときに webapp-testing を使う。フロントの機能確認、インターフェース動作のデバッグ、ブラウザのスクリーンショット、ブラウザログの確認を支える。対象はローカルアプリであり、名指しされていない遠隔サイトの走査ではない。

より合う前提は、ネイティブの Python Playwright スクリプトを書き、補助スクリプトでサーバのライフサイクルを管理する用意があること。資料にエージェント製品一覧もインストーラもない。リポジトリパスを捏造しない。公式の説明ページは

https://raw.githubusercontent.com/anthropics/skills/main/skills/webapp-testing/SKILL.md

3分で最初の試みを終える

最初に推奨する道は、ブラウザを開く前に補助スクリプトの使い方を見ること。資料はサーバのライフサイクル管理(複数サーバ対応)を scripts/with_server.py に任せると名指しし、次を要求する:Always run scripts with --help first。

前提:いまの環境でその helper を実行できる。低リスクな最初:

scripts/with_server.py --help

成功の合図:用法が印刷され、サーバはまだ起動していない。これは読み取り専用のヘルプである。先に helper のソースを読んで引数を推測しない。要約は先に --help であり、先にソースを読むことではない。

ヘルプが読め、ローカルアプリを測ると確認できたら、Playwright スクリプトを書く。必ず sync_playwright を使い、chromium を headless で起動する:browser = p.chromium.launch(headless=True)。サーバ起動とページオープンは環境を変え、ログを書くこともある。実行前に対象が自分のローカルアプリだと確認する。要約は helper 起動後に localhost へ向けて測ると書くが、抜粋にポート番号はないので、アドレスを捏造しない。

使用事例

事例一:helper でローカルサーバを伴い、読み取り専用で一度見る。先に --help。引数を確認してから scripts/with_server.py を呼ぶ。スクリプト内では sync_playwright で headless chromium を開く。完了基準は、ブラウザがヘッドレスで起動し、ページへ破壊的操作をまだしていないこと。資料はスクリーンショットとログ閲覧を支える。この二つは比較的可逆である。ファイルを書く前に、スクリーンショットの保存パスを確認する。

事例二:動的アプリは「先に偵察、それから操作」。順は:移動して networkidle を待つ;スクリーンショットまたは DOM 検査;描画結果からセレクタを識別;発見したセレクタで操作する。資料は、動的アプリでは networkidle の前に DOM を検査するなと明示する。正しいのは page.wait_for_load_state('networkidle') を待ってから検査すること。完了基準は、待ちが検査より前だと指せること。ネットワークがアイドルになる前に、未確認のセレクタをクリックしない。

使用の境界

ローカル Web アプリの Playwright テストだけを覆う。chromium は常に headless。helper は先に --help。動的アプリは先に networkidle、それから DOM。

インストーラ、リポジトリパス、書いていない localhost ポートを捏造しない。資料にクライアント一覧はなく、非ローカルサイトでの使い方も書いていない。ここに書いた helper、ヘッドレス起動、偵察の順の外は、この説明の範囲外である。