Automatización del navegador
El grupo de comandos icc browser proporciona automatización del navegador contra superficies de navegador de icc. Úselo para navegar, interactuar con elementos DOM, inspeccionar el estado de la página, ejecutar JavaScript y gestionar datos de sesión del navegador.
Índice de comandos
| Categoría | Subcomandos |
|---|---|
| Navegación y selección de objetivo | identify, open, open-split, navigate, back, forward, reload, url, focus-webview, is-webview-focused |
| Espera | wait |
| Interacción con DOM | click, dblclick, hover, focus, check, uncheck, scroll-into-view, type, fill, press, keydown, keyup, select, scroll |
| Inspección | snapshot, screenshot, get, is, find, highlight |
| JavaScript e inyección | eval, addinitscript, addscript, addstyle |
| Frames, diálogos, descargas | frame, dialog, download |
| Estado y datos de sesión | cookies, storage, state |
| Pestañas y registros | tab, console, errors |
Seleccionar una superficie de navegador
La mayoría de los subcomandos requieren una superficie objetivo. Puede pasarla posicionalmente o con --surface.
# Open a new browser split
icc browser open https://example.com
# Discover focused IDs and browser metadata
icc browser identify
icc browser identify --surface surface:2
# Positional vs flag targeting are equivalent
icc browser surface:2 url
icc browser --surface surface:2 urlNavegación
icc browser open https://example.com
icc browser open-split https://news.ycombinator.com
icc browser surface:2 navigate https://example.org/docs --snapshot-after
icc browser surface:2 back
icc browser surface:2 forward
icc browser surface:2 reload --snapshot-after
icc browser surface:2 url
icc browser surface:2 focus-webview
icc browser surface:2 is-webview-focusedEspera
Use wait para bloquear hasta que se satisfagan selectores, texto, fragmentos de URL, estado de carga o una condición JavaScript.
icc browser surface:2 wait --load-state complete --timeout-ms 15000
icc browser surface:2 wait --selector "#checkout" --timeout-ms 10000
icc browser surface:2 wait --text "Order confirmed"
icc browser surface:2 wait --url-contains "/dashboard"
icc browser surface:2 wait --function "window.__appReady === true"Interacción con DOM
Las acciones mutativas soportan --snapshot-after para verificación rápida en scripts.
icc browser surface:2 click "button[type='submit']" --snapshot-after
icc browser surface:2 dblclick ".item-row"
icc browser surface:2 hover "#menu"
icc browser surface:2 focus "#email"
icc browser surface:2 check "#terms"
icc browser surface:2 uncheck "#newsletter"
icc browser surface:2 scroll-into-view "#pricing"
icc browser surface:2 type "#search" "icc"
icc browser surface:2 fill "#email" --text "[email protected]"
icc browser surface:2 fill "#email" --text ""
icc browser surface:2 press Enter
icc browser surface:2 keydown Shift
icc browser surface:2 keyup Shift
icc browser surface:2 select "#region" "us-east"
icc browser surface:2 scroll --dy 800 --snapshot-after
icc browser surface:2 scroll --selector "#log-view" --dx 0 --dy 400Inspección
Use getters estructurados para scripts y snapshots/capturas de pantalla para revisión humana.
icc browser surface:2 snapshot --interactive --compact
icc browser surface:2 snapshot --selector "main" --max-depth 5
icc browser surface:2 screenshot --out /tmp/icc-page.png
icc browser surface:2 get title
icc browser surface:2 get url
icc browser surface:2 get text "h1"
icc browser surface:2 get html "main"
icc browser surface:2 get value "#email"
icc browser surface:2 get attr "a.primary" --attr href
icc browser surface:2 get count ".row"
icc browser surface:2 get box "#checkout"
icc browser surface:2 get styles "#total" --property color
icc browser surface:2 is visible "#checkout"
icc browser surface:2 is enabled "button[type='submit']"
icc browser surface:2 is checked "#terms"
icc browser surface:2 find role button --name "Continue"
icc browser surface:2 find text "Order confirmed"
icc browser surface:2 find label "Email"
icc browser surface:2 find placeholder "Search"
icc browser surface:2 find alt "Product image"
icc browser surface:2 find title "Open settings"
icc browser surface:2 find testid "save-btn"
icc browser surface:2 find first ".row"
icc browser surface:2 find last ".row"
icc browser surface:2 find nth 2 ".row"
icc browser surface:2 highlight "#checkout"Evaluación e inyección de JavaScript
icc browser surface:2 eval "document.title"
icc browser surface:2 eval --script "window.location.href"
icc browser surface:2 addinitscript "window.__iccReady = true;"
icc browser surface:2 addscript "document.querySelector('#name')?.focus()"
icc browser surface:2 addstyle "#debug-banner { display: none !important; }"Estado
Los comandos de datos de sesión cubren cookies, almacenamiento local/de sesión y snapshots completos del estado del navegador.
icc browser surface:2 cookies get
icc browser surface:2 cookies get --name session_id
icc browser surface:2 cookies set session_id abc123 --domain example.com --path /
icc browser surface:2 cookies clear --name session_id
icc browser surface:2 cookies clear --all
icc browser surface:2 storage local set theme dark
icc browser surface:2 storage local get theme
icc browser surface:2 storage local clear
icc browser surface:2 storage session set flow onboarding
icc browser surface:2 storage session get flow
icc browser surface:2 state save /tmp/icc-browser-state.json
icc browser surface:2 state load /tmp/icc-browser-state.jsonPestañas
Las operaciones de pestañas del navegador se mapean a superficies de navegador en el grupo de pestañas activo del navegador.
icc browser surface:2 tab list
icc browser surface:2 tab new https://example.com/pricing
# Switch by index or by target surface
icc browser surface:2 tab switch 1
icc browser surface:2 tab switch surface:7
# Close current tab or a specific target
icc browser surface:2 tab close
icc browser surface:2 tab close surface:7Consola y errores
icc browser surface:2 console list
icc browser surface:2 console clear
icc browser surface:2 errors list
icc browser surface:2 errors clearDiálogos
icc browser surface:2 dialog accept
icc browser surface:2 dialog accept "Confirmed by automation"
icc browser surface:2 dialog dismissFrames
# Enter an iframe context
icc browser surface:2 frame "iframe[name='checkout']"
icc browser surface:2 click "#pay-now"
# Return to the top-level document
icc browser surface:2 frame mainDescargas
icc browser surface:2 click "a#download-report"
icc browser surface:2 download --path /tmp/report.csv --timeout-ms 30000Patrones comunes
Navegar, esperar, inspeccionar
icc browser open https://example.com/login
icc browser surface:2 wait --load-state complete --timeout-ms 15000
icc browser surface:2 snapshot --interactive --compact
icc browser surface:2 get titleLlenar un formulario y verificar el texto de éxito
icc browser surface:2 fill "#email" --text "[email protected]"
icc browser surface:2 fill "#password" --text "$PASSWORD"
icc browser surface:2 click "button[type='submit']" --snapshot-after
icc browser surface:2 wait --text "Welcome"
icc browser surface:2 is visible "#dashboard"Capturar artefactos de depuración en caso de error
icc browser surface:2 console list
icc browser surface:2 errors list
icc browser surface:2 screenshot --out /tmp/icc-failure.png
icc browser surface:2 snapshot --interactive --compactPersistir y restaurar sesión del navegador
icc browser surface:2 state save /tmp/session.json
# ...later...
icc browser surface:2 state load /tmp/session.json
icc browser surface:2 reload