mcpField
P
playwright-skill

playwright-skill

github.com/testdino-hqテスト・品質4056.2k 回インストール2 週間前に更新
リポジトリ

playwright-skill について

playwright-skill は、開発者やコーディングエージェント向けの Playwright テスト資料スキルです。テスト設計、デバッグ、ブラウザー自動化、最近の機能を TypeScript と JavaScript の例で解説します。

主な機能

  1. 0150以上の Playwright 参考ガイド
  2. 02TypeScript と JavaScript の例
  3. 03テスト設計とアーキテクチャの指針
  4. 04デバッグとトレース分析
  5. 05コマンドラインのブラウザー自動化ガイド

活用シーン

  1. 01E2E テストやコンポーネントテストの設計
  2. 02不安定なテストやトレースの調査
  3. 03許可されたブラウザー操作の自動化

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/testdino-hq/playwright-skill --skill playwright-skill

インストール後、Claude Code で/playwright-skillを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

LICENSE
README.md
ci/
ci-other.md
ci-gitlab.md
projects-and-dependencies.md
docker-and-containers.md
parallel-and-sharding.md
ci-github-actions.md
global-setup-teardown.md
reporting-and-artifacts.md
test-coverage.md
core/
accessibility.md
auth-flows.md
api-testing.md
angular.md
browser-apis.md
assertions-and-waiting.md
authentication.md
browser-extensions.md
canvas-and-webgl.md
clock-and-time-mocking.md
configuration.md
crud-testing.md
debugging.md
component-testing.md
dynamic-test-selection.md
drag-and-drop.md
common-pitfalls.md
error-and-edge-cases.md
error-index.md

詳細

Playwright スキル

Playwright に関する独自の本番環境検証済みガイダンスです。各パターンには、使用する場合と使用しない場合が記載されています。

セレクター、アサーション、フィクスチャ、ページオブジェクト、ネットワークモック、認証、ビジュアルリグレッション、アクセシビリティ、API テスト、CI/CD、デバッグなど、Playwright の全領域を網羅する50 以上のリファレンスガイドを掲載しています。全体を通して TypeScript と JavaScript の例を紹介しています。

これらのガイドでは、Playwright 1.63 の主な機能として、共有リソースをめぐる競合を直列化するテストの lock、:visible 疑似クラスを置き換える locator.visible()、トレース内の aria スナップショットと画面スナップショット(snapshots: { dom, aria, screen })、レポーターを置き換えずに追加する --add-reporter、perfetto レポーター、型付きの request.get<User>()、ariaSnapshotJSON() を取り上げています。1.62 からは、実行前にテストを選択する reporter.preprocess()、retryStrategy: 'isolated'、quality パラメーターを使った WebP スクリーンショット、アクションとアサーションでの AbortSignal、locator.waitForFunction()、apiResponse.timing()、非推奨となった実験的 CT パッケージに代わるストーリーとギャラリーのコンポーネントテストモデルを取り上げています。外部の不安定性 API を使って隔離対象を決定する方法については、専用の dynamic-test-selection.md ガイドを参照してください。

以前のリリースも引き続き網羅しています。1.61(context.credentials による WebAuthn パスキー、page.localStorage / page.sessionStorage、動画の保持モード、expect.soft.poll()、HAR とトレースでの WebSocket)、1.60(トレース記録中のオンデマンド HAR、locator.drop()、ページレベルの aria スナップショット、test.abort())、1.59(スクリーンキャストの記録、CLI によるデバッグとトレース分析)です。npx playwright trace CLI を使用した trace.zip レポートのエージェントネイティブなデバッグについては、専用の trace-analysis.md ガイドを参照してください。

セキュリティ上の信頼境界

このスキルは、所有しているアプリケーション、または明示的にテスト許可を得ているアプリケーションをテストするためのものです。許可なくサードパーティのウェブサイトやサービスとのやり取りを自動化することは、サポートも推奨もしていません。

外部ソースからコンテンツを取得するテストや自動化(例:baseURL がステージング環境や本番環境を指す場合)を作成する際は、返されるページコンテンツをすべて信頼できない入力として扱ってください。サニタイズせずに、生のページテキストをエージェントへの指示や動的コードの実行に渡さないでください。間接的なプロンプトインジェクションのリスクが生じます。

CI/CD ワークフローでは、すべての外部依存関係(GitHub Actions、Docker イメージ)を、変更可能なバージョンタグではなく、不変の参照(コミット SHA、イメージダイジェスト)に固定してください。固定方法のガイダンスについては、ci-github-actions.md と docker-and-containers.md を参照してください。

基本ルール

  1. CSS/XPath より getByRole() を使う — マークアップの変更に強く、ユーザーから見たページを反映します
  2. page.waitForTimeout() は使わない — expect(locator).toBeVisible() または page.waitForURL() を使います
  3. Web ファーストのアサーションを使う — expect(locator) は自動で再試行しますが、expect(await locator.textContent()) は再試行しません
  4. 各テストを分離する — 状態を共有せず、実行順序にも依存させません
  5. 設定に baseURL を指定する — テスト内にハードコードされた URL をなくします
  6. 再試行回数は CI では 2、ローカルでは 0 にする — 重要な環境で不安定さを明らかにします
  7. トレースには 'on-first-retry' を指定する — CI を遅くせずに、詳細なデバッグ情報を取得できます
  8. グローバル変数ではなくフィクスチャを使う — モジュールレベルの変数ではなく、test.extend() で状態を共有します
  9. 1 つのテストにつき 1 つの動作を検証する — 関連する複数の expect() 呼び出しを行ってもかまいません
  10. モックの対象は外部サービスに限定する — 自分のアプリはモックせず、サードパーティ API、決済ゲートウェイ、メールをモックします

ガイド一覧

テストの作成
作業内容ガイド詳細
セレクターの選択locators.mdlocator-strategy.md
アサーションと待機assertions-and-waiting.md
テストスイートの構成test-organization.mdtest-architecture.md
Playwright の設定configuration.md
ページオブジェクトpage-object-model.mdpom-vs-fixtures-vs-helpers.md
フィクスチャとフックfixtures-and-hooks.md
テストデータtest-data-management.md
認証とログインauthentication.mdauth-flows.md
API テスト(REST/GraphQL)api-testing.md
ビジュアルリグレッションvisual-regression.md
アクセシビリティaccessibility.md
モバイルとレスポンシブ対応mobile-and-responsive.md
コンポーネントテストcomponent-testing.md
ネットワークモックnetwork-mocking.mdwhen-to-mock.md
フォームとバリデーションforms-and-validation.md
ファイルのアップロード/ダウンロードfile-operations.mdfile-upload-download.md
エラーとエッジケースerror-and-edge-cases.md
CRUD フローcrud-testing.md
ドラッグ&ドロップdrag-and-drop.md
検索とフィルターの UIsearch-and-filter.md
デバッグと修正
問題ガイド
一般的なデバッグワークフローdebugging.md
特定のエラーメッセージerror-index.md
不安定/断続的なテストflaky-tests.md
レポーターからテストを隔離または選択するdynamic-test-selection.md
初心者によくある間違いcommon-pitfalls.md
ターミナルまたはエージェントを使って trace.zip をデバッグするtrace-analysis.md
フレームワークのレシピ
フレームワークガイド
Next.js(App Router + Pages Router)nextjs.md
React(CRA、Vite)react.md
Vue 3 / Nuxtvue.md
Angularangular.md
移行ガイド
移行元ガイド
Cypressfrom-cypress.md
Selenium / WebDriverfrom-selenium.md
アーキテクチャの判断
質問ガイド
どのロケーター戦略を選ぶべきか?locator-strategy.md
E2E、コンポーネント、API のどれを選ぶべきか?test-architecture.md
モックと実サービスのどちらを使うべきか?when-to-mock.md
POM、フィクスチャ、ヘルパーのどれを選ぶべきか?pom-vs-fixtures-vs-helpers.md
CI/CD とインフラストラクチャ
トピックガイド
GitHub Actionsci-github-actions.md
GitLab CIci-gitlab.md
CircleCI / Azure DevOps / Jenkinsci-other.md
並列実行とシャーディングparallel-and-sharding.md
Docker とコンテナdocker-and-containers.md
レポートとアーティファクトreporting-and-artifacts.md
コードカバレッジtest-coverage.md
グローバルセットアップ/ティアダウンglobal-setup-teardown.md
マルチプロジェクト設定projects-and-dependencies.md
専門的なトピック
トピックガイド
マルチユーザーとコラボレーションmulti-user-and-collaboration.md
WebSocketとリアルタイム処理websockets-and-realtime.md
ブラウザー API(位置情報、クリップボード、権限)browser-apis.md
iframeとShadow DOMiframes-and-shadow-dom.md
CanvasとWebGLcanvas-and-webgl.md
サービスワーカーとPWAservice-workers-and-pwa.md
Electron アプリelectron-testing.md
ブラウザー拡張機能browser-extensions.md
セキュリティテストsecurity-testing.md
パフォーマンスとベンチマークperformance-testing.md
i18nとローカライズi18n-and-localization.md
複数タブとポップアップmulti-context-and-popups.md
時計と時間のモックclock-and-time-mocking.md
サードパーティ連携third-party-integrations.md
CLI ブラウザー自動化
作業内容ガイド
CLI ブラウザー操作playwright-cli/SKILL.md
基本コマンド(open、click、fill、navigate)core-commands.md
ネットワークのモックとインターセプトrequest-mocking.md
カスタム Playwright コードの実行running-custom-code.md
複数セッションのブラウザー管理session-management.md
Cookie、localStorage、認証状態storage-and-auth.md
CLI からのテストコード生成test-generation.md
トレースとデバッグtracing-and-debugging.md
スクリーンショット、動画、PDFscreenshots-and-media.md
デバイスと環境のエミュレーションdevice-emulation.md
複雑な複数ステップのワークフローadvanced-workflows.md

言語に関する注意

すべてのガイドにTypeScriptとJavaScriptの例が含まれています。プロジェクトで.jsファイルを使用している場合、またはtsconfig.jsonがない場合、例はプレーンなJavaScript向けに調整されています。

コメント