Page Object Generator
Inspects DOM (live or via spec) and emits typed Page Objects with stable selectors and high-level actions. Enforces single-responsibility per object.
evan generate-page-object --url /loginLocator)Page as its only argumentCheckoutPage → ShippingStep + PaymentStep + ReviewStep).async clickEmailField()async typeIntoEmailField(text)async clickSubmitButton()async login(email, password)Page, Locator, expect from @playwright/testLoginPage, CheckoutShippingStep)asyncwaitForLoaded() method if the screen has a known loading stateclass LoginPageemailInput: Locator = page.getByRole('textbox', { name: 'Email' })passwordInput: Locator = page.getByRole('textbox', { name: 'Password' })submitButton: Locator = page.getByRole('button', { name: 'Sign in' })async login(email, password): Promise<void> — fills both fields, clicks submit, waits for navigationasync expectError(message: string): Promise<void> — uses expect() on the alert roleConverts Gherkin steps into Cucumber/TypeScript step definitions. Wires parameters, expression types, and shared world state automatically.
Picks the most stable selector for a target element — role-based first, label-based next, test-id last. Avoids brittle CSS class chains.
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.