Interact with the page, then screenshot + audit
interact_and_auditPerform one interaction on the current page, then get a screenshot and text layout audit to reveal breakage from menus, tabs, or modals.
Instructions
Perform ONE interaction on the currently open page, then return a webp screenshot AND a fresh text layout audit of the resulting state, so breakage from an expanded menu, an active tab, or an opened modal shows up immediately. Gestures, blocking waits, and pointer gestures on viewport pixel coordinates are all available — see action for what each one needs. An ambiguous selector acts on the first match and says so. Pass viewport to switch breakpoints before the selector resolves, ignoreSelector to mute known layout noise. Open a page with capture_page_screenshot first.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | X in viewport pixels, off a screenshot. | |
| y | No | Y in viewport pixels, off a screenshot. | |
| key | No | Key or chord for "press", e.g. "Enter", "Tab", "Control+a". | |
| endX | No | Drag release X, viewport pixels. | |
| endY | No | Drag release Y, viewport pixels. | |
| text | No | Text payload: the value to fill for "type" (the field is cleared first), or the substring to match for "wait_for_text"/"expect_text". | |
| state | No | State for "wait_for" to block on. Default visible. | |
| steps | No | Intermediate mouse-moves for "pointer_drag" (default 10). More steps registers with pickier drag-and-drop libraries. | |
| value | No | Option for "select", matched on <option> value first, then its label. | |
| action | Yes | What to do. Extra args in parens: type(text), select(value), press(key), wait_for(state, default visible), wait_for_text(text), wait_for_url(urlContains), wait_for_response(urlContains — fails the call on status >= 400, or != expectStatus), pointer_click(x,y), pointer_hover(x,y), pointer_drag(startX,startY,endX,endY). Waits block until true or time out. pointer_* take viewport pixel coordinates read off a screenshot, so they hit canvas, shadow DOM, and drag-and-drop targets that have no selector. | |
| button | No | Button for "pointer_click". Default left. | |
| startX | No | Drag press-down X, viewport pixels. | |
| startY | No | Drag press-down Y, viewport pixels. | |
| selector | No | CSS (or Playwright text=/role=) selector. Omit for page-level steps such as wait_for_network, wait_for_url, or a page-wide expect_text. | |
| sizeMode | No | What goes over the wire: "full-res" (default), or "thumb" for a 480px webp. Disk always gets the full-resolution image. | full-res |
| viewport | No | Switch to this breakpoint first. Default: keep the current one. | |
| timeoutMs | No | Timeout for a wait_for_*/expect_* step (default 5000ms). | |
| urlContains | No | URL substring to match — the page URL for "wait_for_url", the request URL for "wait_for_response". | |
| expectStatus | No | Require this exact status for "wait_for_response". Omit to accept 2xx/3xx and fail on >= 400. | |
| ignoreSelector | No | Selector(s) to exclude from the audit, string or array. Matches and their descendants are suppressed and counted — silences known noise like a cookie banner. |