Loading challenge...
Select a player in a leaderboard that re-sorts and re-hashes element ids every tick — locate by stable data-player, not id or index
A live leaderboard re-sorts itself and re-hashes every element id on a timer; the only stable hook is data-player
Every tick the rows get fresh random scores, the list re-sorts, and each row's DOM id is regenerated. A locator pinned to an id or an nth index will go stale the instant the next interval fires.
The data-player attribute is the one thing that survives the churn — anchor your tests to it and let the framework auto-retry.
Throttle the churn, freeze it, then click a player's action button
Automation hints
id — every row in #leaderboard is re-hashed on each tick, so any captured id is dead next intervalnth / positional index — the list re-sorts by random score, so row order is unstable[data-player="Ada"] or page.getByText("Ada") — these auto-retry through re-renders#freeze-toggle (or rely on Playwright auto-waiting) to settle the DOM before interacting; it exposes data-frozen for assertions#action-result