Practice real locator decisions
This site is intentionally built with “good” and “bad” patterns so you can practice choosing stable Playwright locators.
Use it with npx playwright codegen or the Inspector.
Goal: Default to semantic locators (role/label/text) when stable, then testid, then CSS, then XPath only when it truly helps.
Quick start
Recommended practice loop:
- Open a page (Basics/Dynamic/Advanced).
- Pick a challenge card.
- Write 2 solutions:
- semantic Playwright locator
- XPath fallback
- Run it and validate it selects exactly the intended element.
What to practice
- Duplicate text: pick the right one
- Hidden clones: visible vs attached
- Dynamic classes: don’t key off noise
- Hover reveals: discover the trigger
- Iframe + shadow root basics