Edge Cases
The annoying patterns that break naive automation: stale elements, fixed-header overlap, autofocus, animations.
Stale element
After click, element is replaced with a new one — old reference becomes stale.
Element scrolled out of view
The button is far below — must scroll to it.
Filler line 1 — keep scrolling…
Filler line 2 — keep scrolling…
Filler line 3 — keep scrolling…
Filler line 4 — keep scrolling…
Filler line 5 — keep scrolling…
Filler line 6 — keep scrolling…
Filler line 7 — keep scrolling…
Filler line 8 — keep scrolling…
Filler line 9 — keep scrolling…
Filler line 10 — keep scrolling…
Filler line 11 — keep scrolling…
Filler line 12 — keep scrolling…
Filler line 13 — keep scrolling…
Filler line 14 — keep scrolling…
Filler line 15 — keep scrolling…
Filler line 16 — keep scrolling…
Filler line 17 — keep scrolling…
Filler line 18 — keep scrolling…
Filler line 19 — keep scrolling…
Filler line 20 — keep scrolling…
Click intercepted by sticky header
A fake sticky header overlaps the button until you scroll the inner panel.
Animated transition
Wait for animation to complete before next action.
Inner content — only fully visible after the height animation.
Looks-enabled but disabled
CSS makes it look clickable; the disabled attribute makes it not.
Auto-focus & auto-submit
Field auto-focuses, form auto-submits on Enter.
Iframe-blocked focus theft
A field that programmatically grabs focus every 2 seconds.
Modal that locks scroll
Scroll-locking modal
Body scroll is disabled while open. Close to release.