Locator Strategist
Picks the most stable selector for a target element — role-based first, label-based next, test-id last. Avoids brittle CSS class chains.
getByRole('button', { name: 'Submit' })getByLabel('Email'), getByPlaceholder('search…')getByTestId('submit-payment')getByText('Sign in', { exact: true })checkout/submit, not just submit.nth(0). Instead, it widens the locator with semantic context: page.getByRole('form', { name: 'Login' }).getByRole('button', { name: 'Submit' })..nth() chains are a code smell. They imply the test is coupled to render order, which is exactly the kind of coupling that breaks on refactor.Locator expression and a one-line rationale comment explaining why this strategy was chosen over the next-best option. The rationale lives in the page object so future engineers can see the reasoning.Converts Gherkin steps into Cucumber/TypeScript step definitions. Wires parameters, expression types, and shared world state automatically.
Inspects DOM (live or via spec) and emits typed Page Objects with stable selectors and high-level actions. Enforces single-responsibility per object.
Reads OpenAPI / GraphQL schemas and emits contract + integration tests. Handles auth, pagination, idempotency, and rate-limit assertions.
Synthesizes realistic test data — names, addresses, payment cards, medical records, account numbers — with deterministic seeds and PII safety.
Augments thin Gherkin Then-clauses with additional assertions: response codes, side-effects, audit log entries, downstream events.
Same Gherkin spec → Playwright, Cypress, WebdriverIO, or Selenium output. Lets teams adopt the squad without re-platforming existing automation.