fix(click): scroll into view + DOM-dispatch fallback for reliable clicks
Real-world dogfooding surfaced clicks that resolve a valid @ref but still miss: - Scroll the target into view before computing click coordinates (scrollIntoViewIfNeeded). Without it, an element below the fold — or revealed after a scroll/popup — yields off-viewport coordinates and the click lands on whatever occupies that screen point. - Fall back to a DOM-dispatched `.click()` when the coordinate path fails (a persistent floating layer failing the occlusion guard, or coordinates that won't resolve). The DOM dispatch targets the intended element directly instead of a screen point, so an overlay or portal can't divert it. - AGENT_BROWSER_CLICK_MODE: "" (default: scroll + coordinate + DOM fallback), "coord" (strict coordinate, hard-fail on occlusion), "dom" (always element.click() — best for autocomplete/menu <li> that close on input blur). Fallback is limited to left single-clicks (DOM .click() can't express right/middle/double). Non-left/multi and "coord" mode keep the original error. Docs: README knob table + skill commands.md gain CLICK_MODE, a click-reliability note, and a "debug forms/hidden inputs with eval" section (snapshot doesn't show hidden inputs — the fast path to bugs like a hidden point_choice=none). 6 click/interaction e2e green; full suite 760 passed.
This commit is contained in:
@@ -139,6 +139,7 @@ When using `--launch` mode (standalone browser), a full suite of 32 stealth patc
|
||||
| `AGENT_BROWSER_BLOCK_WEBRTC` | auto | `--launch` only. Auto-forces WebRTC through the proxy when one is set (no real-IP leak). `1` hides the local IP without a proxy; `0` opts out. |
|
||||
| `AGENT_BROWSER_HIDE_CANVAS` | off | `--launch` only. Adds session-stable canvas/audio fingerprint noise. Off by default (noise is itself a "lie"). |
|
||||
| `AGENT_BROWSER_ADAPTIVE_REF` | on | When a saved `@ref` moves and the role/name re-query fails, relocate it by fingerprint similarity (high score + clear margin required, else it fails loudly). `0` disables. |
|
||||
| `AGENT_BROWSER_CLICK_MODE` | _(auto)_ | Click strategy. Default scrolls the target into view, dispatches a coordinate click, and falls back to a DOM `.click()` if a floating layer occludes the point. `dom` always uses `.click()` (best for autocomplete/menu items that close on blur); `coord` is strict coordinate-only (hard-fail on occlusion). |
|
||||
|
||||
## Differences from upstream
|
||||
|
||||
|
||||
Reference in New Issue
Block a user