playwright-frontend について
安定した機械可読なDOMの契約を整えるための、フロントエンドエンジニア向けPlaywrightマークアップガイドです。セマンティックでアクセシブルなマークアップを優先し、必要な場合に限り一意で安定した`data-testid`を追加します。
主な機能
- 01`data-testid`の命名規則を定める
- 02セマンティックHTMLとアクセシブルな名前を優先
- 03テストIDの一意性と安定性を確保
- 04リスト項目に安定したドメインキーを使用
- 05`data-testid`属性に統一
活用シーン
- 01自動テスト用のDOMロケーターを設計
- 02カスタムウィジェットに安定したテスト識別子を追加
- 03ローカライズやスタイル変更によるテストの不安定化を抑制
- 04React、Vue、Angular、SvelteでテストIDを統一
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ testdino-hq/ playwright-skill --skill playwright-frontendインストール後、Claude Code で/playwright-frontendを入力して読み込まれたか確認します。
同梱ファイルdata-testid-conventions.mdexamples.md
詳細
Playwright フロントエンド(ロケーター可能なマークアップの作成)
対象読者:アプリを開発するフロントエンドエンジニア —
core/のテスト作成者向けガイドに対応するものです。ここでの目的は、テストと AI エージェントが不安定さを避けて要素を確実に特定できるよう、DOM 上に小規模で安定した機械可読の契約を用意することです。
data-testid は UI の自動化レイヤーにおける公開 API です。テストやエージェントがこれに依存した後で名前を変更すると、互換性を損なう変更になります。まずアクセシブルなマークアップを作成し、自動化で長期的に使える識別子が必要な箇所に、意図的で適切な名前を付けた、一意かつ安定したテスト ID を追加してください。
ガイド一覧
| トピック | ガイド |
|---|---|
data-testid の規約(使用場面、命名、一意性、安定性) | data-testid-conventions.md |
| フレームワークのパターン(React、Vue、Angular、Svelte)+ ID の一元管理+本番環境での削除 | examples.md |
基本ルール
- まずセマンティックな HTML を使う —
getByRole/getByLabelが機能するよう、要素に適切なロール、ラベル、アクセシブルな名前を設定してから、テスト ID を追加します。 - ロール、ラベル、テキストでは不十分な場合に限り
data-testidを追加する — ロールのないカスタムウィジェット、スコープ用コンテナー、リストの行、動的またはローカライズされた領域などが該当します。getByRoleで一意に特定できるコントロールには必要ありません。 - 全体で一意になる名前を付ける —
feature-component-element[-variant]、kebab-case。 - リストでは配列のインデックスではなく、安定したドメインキーを末尾に付ける —
user-row-${user.id}✅ /user-row-${index}❌。 - 値をテキスト、ロケール、スタイル、DOM 上の位置から切り離す — これらは変わりますが、テスト ID は変わらないようにします。
- 属性を一つに統一する — Playwright のデフォルトの
testIdAttributeはdata-testidです。data-test/data-qaと混在させないでください。
関連項目
- core/locators.md/core/locator-strategy.md — 利用する側のガイド。テストを書く際のロケーターの選び方を説明します。
- Playwright 公式ドキュメント:ロケーター、ベストプラクティス。
コメント
Markdown 対応