Dynamic DOM

Practice timing, visibility, and avoiding brittle selectors.

Challenge 1: Element renders late

Goal: click “Render Result” then assert the result becomes visible and reads “Loaded result”.

Challenge 2: Dynamic class noise

Goal: click “Confirm” using a stable locator. The container’s class changes every reload.

Idle

Challenge 3: Hidden clone (attached but not visible)

Goal: click the visible “Delete” button (not the hidden clone).

Not deleted

Challenge 4: Same text, different roles

Goal: click the “Continue” button, not the link.

Continue
Idle