Loading challenge...
Four widgets load on staggered delays — wait for the ready state, not the skeleton placeholder
Four widgets each fetch on a staggered delay, showing a shimmering skeleton until their data resolves — the skeleton exists in the DOM long before the value does
Each widget renders a skeleton placeholder immediately, then flips to data-state="ready" once its /api/lab/widget fetch resolves. A naive wait for element passes against the placeholder — a false positive.
Ready: 0 / 4
Wait for every widget to reach the ready state before reading its value
Revenue
Active Users
Error Rate
Latency p95
Automation hints
wait for [data-widget="revenue"] passes instantly against the skeleton — that is the false positive this challenge teaches you to avoid[data-widget="revenue"][data-state="ready"][data-widget][data-state="ready"] equal to 4 (delays stagger up to ~2.3s, so give it ~3s)[data-widget-value="<id>"] only after ready; reading it while loading returns the skeleton, not a number#dashboard-reload re-issues all four staggered fetches — use it to retest the loading → ready transition