本文へ移動
cccskills
無料GitHub で公開

quality-engineering-playwright-pom-generation

Generates Playwright page objects from an executable test plan, one class per screen with ladder-compliant locators and no assertions, wired into a shared fixture. Use when a web scenario needs a page object that does not exist yet, or when locators drift and the page object must be rebuilt.

インストール方法を見る

含まれるファイル(5)

  • SKILL.md3.1 KB
  • evals/evals.json2.2 KB
  • references/fixture-wiring.md1.2 KB
  • references/page-object-template.md2.0 KB
  • references/playwright-mcp-authoring.md1.6 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Quality Engineering: Playwright Page Object Generation

Priority: P1 (HIGH)

Input

A web-lane scenario block from docs/srs/test-plan-[slug].md (Steps, Expected, @AC-n) plus the resolved SELECTOR_GAPS for that screen. Generate from the plan, never from a live DOM crawl alone: the plan says which elements matter.

Layout

  • One file per screen: tests/pages/<screen>.page.ts, class <Screen>Page (e.g. CheckoutPage).
  • One locator getter per element the plan touches, named after the element (submitButton, emailInput).
  • One action method per plan step verb (fillShipping(data), submit()); actions return void or the next page object.
  • A pages fixture in tests/fixtures.ts exposes every page object; specs import test from there, never from @playwright/test directly.

Locator Rules

Follow the web ladder in quality-engineering-selector-stability: getByRole / getByLabel first, then getByTestId using the <screen>-<element>-<role> id, then attribute CSS. Never XPath, nth, text on translated strings, or generated class names. When the element has no stable locator, do not invent one: record it as a selector gap for specialist-testid-inserter.

No Assertions in Page Objects

Page objects expose state (orderId(), isVisible()), specs assert on it. An expect inside a page object hides the assertion from the scenario and breaks reuse across positive and negative cases.

Workflow

  1. Read the scenario block and the screen's existing page object, if any; extend rather than duplicate.
  2. Map each plan step to an existing or new action method; map each Expected to a state getter.
  3. Write locators per the ladder; list unresolved elements under Selector Gaps in the output.
  4. Register the page object in the pages fixture.
  5. Run npx tsc --noEmit -p tests (or the repo's typecheck) and the seed spec once.

Anti-Patterns

  • No assertions in page objects: expect belongs in the spec.
  • No DOM-crawl page objects: a class with forty getters nobody's scenario uses is noise, not coverage.
  • No duplicate page object: search tests/pages/ before creating; extend the existing class.
  • No raw page in specs: every interaction goes through a page object or the seed.
  • No renamed test ids: ids are a public contract; a rename is a selector gap, not a refactor.

References

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Upgrade an Android project to Android Gradle Plugin (AGP) 9. Use when migrating to AGP 9, updating Gradle build files, migrating to built-in Kotlin, or adopting the new AGP DSL.

日本語の概要は準備中です。原文の説明を表示しています。

HoangNguyen0403/agent-skills-standard5732026年10月12日 更新

Apply Clean Architecture layering, modularization, and Unidirectional Data Flow in Android projects. Use when setting up project structure, placing code in layers, configuring feature/core modules, or implementing UDF patterns; defer Compose state and ViewModel/StateFlow implementation to their specific skills.

日本語の概要は準備中です。原文の説明を表示しています。

HoangNguyen0403/agent-skills-standard5732026年10月12日 更新

Implement WorkManager and background processing correctly on Android. Use when creating Worker classes, scheduling tasks, choosing between WorkManager and Foreground Services, or setting up Hilt in workers; defer FCM and notification delivery to android-notifications.

日本語の概要は準備中です。原文の説明を表示しています。

HoangNguyen0403/agent-skills-standard5732026年10月12日 更新

Build high-performance declarative UI with Jetpack Compose. Use when writing Composable functions, optimizing recomposition, hoisting state, or working with LazyColumn and side effects; defer deep-link and navigation routing to android-navigation.

日本語の概要は準備中です。原文の説明を表示しています。

HoangNguyen0403/agent-skills-standard5732026年10月12日 更新

Migrate an Android XML View to Jetpack Compose following a structured 10-step workflow. Use when converting XML layouts to Compose, setting up Compose in an existing View-based project, or incrementally adopting Compose.

日本語の概要は準備中です。原文の説明を表示しています。

HoangNguyen0403/agent-skills-standard5732026年10月12日 更新

Write correct coroutine scopes, lifecycle collection, and dispatcher injection in Android production code. Use for suspend functions, coroutine scopes, and dispatcher mechanics; defer ViewModel StateFlow/LiveData architecture, Fragment lifecycle recipes, persistence/notifications, and unit-test recipes to their specific skills.

日本語の概要は準備中です。原文の説明を表示しています。

HoangNguyen0403/agent-skills-standard5732026年10月12日 更新

HoangNguyen0403 のスキルをすべて見る

このスキルの問題を報告する