e2e-panther-playwright

Installation
SKILL.md

E2e Panther Playwright (Symfony)

Use when

  • A flow needs a real browser: JavaScript, multi-page journeys such as login, checkout or signup.
  • WebTestCase cannot see the behavior because it depends on client-side rendering.
  • Cross-browser needs (WebKit, tracing, video) that WebDriver does not cover: run Playwright separately.
  • Debugging a browser test that fails only in CI.

Default workflow

  1. Pick the client: static::createPantherClient() for a real browser, static::createClient() when no JavaScript is needed.
  2. Install symfony/panther and dbrekelmans/bdi, run vendor/bin/bdi detect drivers, and register ServerExtension in phpunit.dist.xml.
  3. Extend PantherTestCase and drive the flow with explicit waits: waitFor(), waitForVisibility(), waitForElementToContain().
  4. Assert future state with assertSelectorWillExist() or assertSelectorWillContain(), current state with assertSelectorIsVisible().
  5. Keep the suite in tests/E2E and reset the database between tests (DAMADoctrineTestBundle or Foundry).
  6. Debug with PANTHER_NO_HEADLESS=1 and --debug; set PANTHER_NO_SANDBOX=1 in CI.
Installs
56
GitHub Stars
224
First Seen
Sep 18, 2026