オプション
家 Skill ブラウザの自動化 playwright-expert

playwright-expert

Jeffallan/claude-skills Jeffallan/claude-skills

Playwright を使用した E2E テストの作成、テスト環境の構築、または不安定なブラウザテストのデバッグの際に活用してください。ブラウザの自動化、E2E テスト、ページオブジェクトモデル、テストの不安定性、視覚的テストなどに活用できます。キーワード:Playwright、E2E、ブラウザテスト、自動化、ページオブジェクト。

...すべて拡張します
47
更新された時間 2026年6月29日

概要playwright-expert

「playwright-expert 」スキルは、Playwrightフレームワークを使用したエンドツーエンド(E2E)テストの作成と管理を支援するために設計されています。このスキルは、テストインフラの構築、不安定なテストのデバッグ、メンテナンス性の高いブラウザ自動化の確保といった一般的な課題を解決します。 このスキルを活用することで、ユーザーはWebアプリケーション向けの堅牢で信頼性が高く、高速なテストの作成プロセスを効率化できます。これは、CI/CDワークフローや継続的テストにおいて極めて重要です。また、テストの品質と保守性の向上にも重点を置いており、テスターが不安定なブラウザの挙動、パフォーマンスのボトルネック、さまざまなWebサービスとの統合に関する問題などに取り組むのを支援します。

「playwright-expert 」スキルの主な特徴には、ページオブジェクトモデル(POM)パターン、APIモック、ビジュアル回帰テスト、およびPlaywrightのテスト設定に関する専門知識が含まれます。このスキルは、任意のタイムアウトを回避するための自動待機機能の活用、独立したテストの作成、信頼性の高いテスト実行を確保するためのロールベースのセレクタの使用など、ベストプラクティスの実装を支援します。 さらに、このスキルでは、デバッグの処理方法、迅速なテスト分析のためのトレースやスクリーンショットの有効化、パフォーマンスを最適化するためのテストの並列実行に関する推奨事項も提供しています。

このスキルは主に、シニアQA自動化エンジニア、特にブラウザテストやPlaywrightに関する豊富な経験を持つ方を対象としています。テストインフラの構築、不安定なテストのデバッグ、POMパターンの実装、APIモックやビジュアル回帰テストの実施を担当するユーザーにとって有益です。 Webアプリケーションのエンドツーエンドテスト、特にCI/CD環境で作業する開発者やテスターにとって、このスキルは非常に有益です。

よくある質問

E2Eテスト用にPlaywrightを設定するにはどうすればよいですか?

'references/configuration.md' ドキュメントに記載されている設定ガイドラインに従って Playwright をセットアップできます。これには、テストを適切に実行するための playwright.config.ts の設定も含まれています。

ページオブジェクトモデル(POM)とは何ですか?また、テストにおいてどのように役立ちますか?

ページオブジェクトモデル(POM)は、Webページを表現するテストクラスを作成するためのデザインパターンです。ページとのやり取りを一元的に管理することで、テストの整理と保守を容易にし、テストコードの可読性と保守性を高めます。

このスキルをCI/CDパイプラインに統合することはできますか?

はい、このスキルは CI/CD との統合を念頭に置いて設計されています。Playwright を使用して記述されたテストは、CI/CD パイプラインに簡単に統合でき、継続的なテストとフィードバックサイクルの迅速化を実現します。

Playwrightを使用する際、パフォーマンスに関する考慮事項はありますか?

テストのパフォーマンスを最適化するために、テストを並列で実行することをお勧めします。また、Playwrightは自動待機機能もサポートしており、不要なタイムアウトを減らし、テスト全体の効率を向上させます。

このスキルでは、テストセレクタに制限はありますか?

はい。CSSクラス名のような不安定なセレクタに依存することは避けることをお勧めします。代わりに、テストの安定性と保守性を確保するため、可能な限りロールベースのセレクタを使用してください。

GitHubで見る

Playwright Expert

E2E testing specialist with deep expertise in Playwright for robust, maintainable browser automation.

Core Workflow

  1. Analyze requirements - Identify user flows to test
  2. Setup - Configure Playwright with proper settings
  3. Write tests - Use POM pattern, proper selectors, auto-waiting
  4. Debug - Run test → check trace → identify issue → fix → verify fix
  5. Integrate - Add to CI/CD pipeline

Reference Guide

Load detailed guidance based on context:

TopicReferenceLoad When
Selectorsreferences/selectors-locators.mdWriting selectors, locator priority
Page Objectsreferences/page-object-model.mdPOM patterns, fixtures
API Mockingreferences/api-mocking.mdRoute interception, mocking
Configurationreferences/configuration.mdplaywright.config.ts setup
Debuggingreferences/debugging-flaky.mdFlaky tests, trace viewer

Constraints

MUST DO

  • Use role-based selectors when possible
  • Leverage auto-waiting (don't add arbitrary timeouts)
  • Keep tests independent (no shared state)
  • Use Page Object Model for maintainability
  • Enable traces/screenshots for debugging
  • Run tests in parallel

MUST NOT DO

  • Use waitForTimeout() (use proper waits)
  • Rely on CSS class selectors (brittle)
  • Share state between tests
  • Ignore flaky tests
  • Use first(), nth() without good reason

Code Examples

Selector: Role-based (correct) vs CSS class (brittle)

// ✅ Role-based selector — resilient to styling changesawait page.getByRole('button', { name: 'Submit' }).click();await page.getByLabel('Email address').fill('[email protected]');// ❌ CSS class selector — breaks on refactorawait page.locator('.btn-primary.submit-btn').click();await page.locator('.email-input').fill('[email protected]');

Page Object Model + Test File

// pages/LoginPage.tsimport { type Page, type Locator } from '@playwright/test';export class LoginPage {  readonly page: Page;  readonly emailInput: Locator;  readonly passwordInput: Locator;  readonly submitButton: Locator;  readonly errorMessage: Locator;  constructor(page: Page) {    this.page = page;    this.emailInput = page.getByLabel('Email address');    this.passwordInput = page.getByLabel('Password');    this.submitButton = page.getByRole('button', { name: 'Sign in' });    this.errorMessage = page.getByRole('alert');  }  async goto() {    await this.page.goto('/login');  }  async login(email: string, password: string) {    await this.emailInput.fill(email);    await this.passwordInput.fill(password);    await this.submitButton.click();  }}
// tests/login.spec.tsimport { test, expect } from '@playwright/test';import { LoginPage } from '../pages/LoginPage';test.describe('Login', () => {  let loginPage: LoginPage;  test.beforeEach(async ({ page }) => {    loginPage = new LoginPage(page);    await loginPage.goto();  });  test('successful login redirects to dashboard', async ({ page }) => {    await loginPage.login('[email protected]', 'correct-password');    await expect(page).toHaveURL('/dashboard');  });  test('invalid credentials shows error', async () => {    await loginPage.login('[email protected]', 'wrong-password');    await expect(loginPage.errorMessage).toBeVisible();    await expect(loginPage.errorMessage).toContainText('Invalid credentials');  });});

Debugging Workflow for Flaky Tests

// 1. Run failing test with trace enabled// playwright.config.tsuse: {  trace: 'on-first-retry',  screenshot: 'only-on-failure',}// 2. Re-run with retries to capture trace// npx playwright test --retries=2// 3. Open trace viewer to inspect timeline// npx playwright show-trace test-results/.../trace.zip// 4. Common fix — replace arbitrary timeout with proper wait// ❌ Flakyawait page.waitForTimeout(2000);await page.getByRole('button', { name: 'Save' }).click();// ✅ Reliable — waits for element stateawait page.getByRole('button', { name: 'Save' }).waitFor({ state: 'visible' });await page.getByRole('button', { name: 'Save' }).click();// 5. Verify fix — run test 10x to confirm stability// npx playwright test --repeat-each=10

Output Templates

When implementing Playwright tests, provide:

  1. Page Object classes
  2. Test files with proper assertions
  3. Fixture setup if needed
  4. Configuration recommendations

Knowledge Reference

Playwright, Page Object Model, auto-waiting, locators, fixtures, API mocking, trace viewer, visual comparisons, parallel execution, CI/CD integration

Documentation

すべてのファイル

1件のファイル

playwright-expertをインストール

スキルファイルをダウンロードし、.claude/skills/ ディレクトリに解凍してください。

ZIPをダウンロード

リポジトリをクローンし、スキルファイルをプロジェクトにコピーしてください。

git clone https://github.com/Jeffallan/claude-skills/blob/main/skills/playwright-expert/SKILL.md # Copy SKILL.md to your .claude/skills/ directory

コピー コピー
クイックセットアップ: skill フォルダを .claude/skills/ にコピーしてください。Claude が自動的にスキルを検出して使用します。
リポジトリ Jeffallan/claude-skills

関連スキル

playwright-cli
更新された時間 2026年6月29日
frontend-testing-best-practices
更新された時間 2026年7月7日
Playwright Browser Automation
更新された時間 2026年6月29日
playwright-generate-test
更新された時間 2026年6月29日
OR