playwright について
Playwrightでエンドツーエンドのブラウザーテストを作成・実行するためのスキルガイドです。クロスブラウザーテスト、ページオブジェクト、トレースやスクリーンショットによるデバッグを扱います。
主な機能
- 01Chromium、Firefox、WebKitのテスト
- 02自動待機ロケーターとアサーション
- 03複数ページとブラウザーコンテキスト
- 04トレースとスクリーンショットを使うCIプロジェクト
- 05ページオブジェクトモデルのガイド
活用シーン
- 01Webサイトのログインフローをテスト
- 02CIでブラウザーテストを実行
- 03トレースとスクリーンショットで失敗を調査
- 04ページオブジェクトで保守しやすいテストを整理
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ partme-ai/ full-stack-skills --skill playwrightインストール後、Claude Code で/playwrightを入力して読み込まれたか確認します。
同梱ファイルLICENSE.txt
詳細
このスキルを使用する場面
ユーザーが次のことを希望する場合は、このスキルを使用します。
- Playwright(Chromium、Firefox、WebKit)でエンドツーエンドのブラウザーテストを作成する
- 自動待機するロケーターと組み込みアサーションを使用する
- 複数のページ、タブ、ブラウザーコンテキストを扱う
- トレースとスクリーンショットを使った CI 実行向けに Playwright プロジェクトを設定する
- 保守しやすいテストのためにページオブジェクトモデルのパターンを実装する
このスキルの使用方法
ワークフロー
- Playwright を初期化する:
npm init playwrightを実行して、設定とサンプルテストを生成します - 自動待機ロケーター(
getByRole、getByLabel、getByText)を使ってテストを作成する - ヘッドレスモード、ヘッド付きモード、または UI モードでテストを実行する:
npx playwright test - トレース、スクリーンショット、Playwright Inspector を使って失敗をデバッグする
1. 基本的なテスト
import { test, expect } from '@playwright/test';
test('homepage has title', async ({ page }) => {
await page.goto('https://example.com');
await expect(page).toHaveTitle(/Example/);
});
test('login flow', async ({ page }) => {
await page.goto('https://example.com/login');
await page.getByLabel('Username').fill('testuser');
await page.getByLabel('Password').fill('secret');
await page.getByRole('button', { name: 'Sign in' }).click();
await expect(page.getByText('Dashboard')).toBeVisible();
});
2. ページオブジェクトモデル
class LoginPage {
constructor(private page: Page) {}
async login(username: string, password: string) {
await this.page.getByLabel('Username').fill(username);
await this.page.getByLabel('Password').fill(password);
await this.page.getByRole('button', { name: 'Sign in' }).click();
}
}
3. 設定
// playwright.config.ts
import { defineConfig } from '@playwright/test';
export default defineConfig({
testDir: './tests',
retries: 2,
use: {
baseURL: 'https://example.com',
trace: 'on-first-retry',
screenshot: 'only-on-failure',
},
projects: [
{ name: 'chromium', use: { browserName: 'chromium' } },
{ name: 'firefox', use: { browserName: 'firefox' } },
{ name: 'webkit', use: { browserName: 'webkit' } },
],
});
4. テストの実行
npx playwright test # Run all tests headless
npx playwright test --headed # Run with browser visible
npx playwright test --ui # Interactive UI mode
npx playwright show-report # View HTML report
ベストプラクティス
- 壊れやすい XPath や CSS セレクターよりも、ロールベースのロケーター(
getByRole、getByLabel)を優先します - テストは独立させ、繰り返し実行できるようにします。状態の準備には
beforeEachまたはフィクスチャを使用します - CI ではブラウザーと依存関係をインストールします(
npx playwright install --with-deps) - デバッグに備えて、失敗時のトレースとスクリーンショットを保持します
- Playwright に組み込まれている
expectアサーションを使用します。自動的に再試行されます
リソース
- 公式ドキュメント:https://playwright.dev/docs/intro
- API リファレンス:https://playwright.dev/docs/api/class-playwright
- ベストプラクティス:https://playwright.dev/docs/best-practices
キーワード
playwright、E2E、エンドツーエンドテスト、クロスブラウザー、自動待機、ロケーター、getByRole、トレース、ページオブジェクトモデル、Chromium、Firefox、WebKit
コメント
Markdown 対応