Delayed loads, shifting IDs, alerts, iframes, drag & drop and a flaky button. Built for practising robust waits and selectors in Selenium, Playwright, or Cypress.
Every widget here carries a stable data-testid. Anything else on the page — ids, timings, success rates — is free to change.
Fills after a random 1–5s. Wait on the result, not the clock.
state: idle
The id changes; data-testid does not.
current id: btn-a1b2c3 · clicks: 0
Fails about one click in three. Do not paper over it.
Register the handler before you click.
result: —
Reorder the list with HTML5 drag events.
A separate document — switch context to reach inside.
Work through these before revealing anything. Answers are opinions worth arguing with, not gospel.
The "Load data" button fills a table after a random 1–5 second delay. Write a wait that never flakes.
sign in to trackThe "Regenerate" button gives the target button a new random id each time. Write a stable selector.
sign in to trackThe flaky button fails roughly 1 in 3 clicks. Should your test retry it? Justify the answer.
sign in to trackInteract with the element inside the iframe. Why does a normal selector fail?
sign in to trackHandle the native confirm() dialog. What happens if you ignore it?
sign in to track