scout_scroll
Scrolls page or chosen region to reveal below-the-fold content, reports position, and flags scroll-locked pages blocked from moving. Reaches lazy-loaded sections before auditing.
Instructions
Scroll like a user — real apps hide their bugs below the fold. Reports the resulting position (px and %), and explicitly flags SCROLL LOCKED: scrollable content exists but the page will not move (the classic leaked modal scroll-lock that silently cuts users off from everything below the fold — snapshots also detect this passively as an OVERLAY line). Without target it scrolls the page, falling back to the largest scrollable pane on app-shell layouts. Pass target to scroll ONE region instead (a sidebar nav, a dialog body, a table pane): the page-level pick is the LARGEST scroll port, so a smaller region beside it never moves and its content looks truncated when it is only scrolled away — never call a nav item missing without scrolling its own container first. Use before judging a long page: the design audit measures at the current scroll position, so scroll + re-snapshot/re-audit deep sections; scroll also triggers lazy-loaded content whose failures then surface as oracle violations.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| by | No | Scroll by px instead (positive = down). Default 600 when neither given. | |
| to | No | Jump to an edge | |
| target | No | Scroll ONE region instead of the page: "testid=…", "text=…" or "label=…". Scrolls that element's nearest scrollable ancestor. | |
| session | No | Target this session directly instead of the active one — pass it explicitly when dispatching to MULTIPLE sessions in one turn (e.g. two scout_click calls with different `session`), which then run CONCURRENTLY rather than queueing. Omit for single-session sequential use. |