Skip to main content
El paso browser.script ejecuta un guion de navegador con un agente de IA. A diferencia del Agente IA: investigar la web —que decide solo cómo completar una tarea—, aquí tú escribes los pasos y el agente los sigue en orden, interpretando cada instrucción sobre la página real. Úsalo para procesos repetitivos sobre un portal conocido: iniciar sesión, navegar a una sección, descargar un reporte, extraer datos.

Campos del paso

El objeto browser

Dentro de code, el objeto browser abre un navegador en la nube y le da el control a tu guion:
  • browser.run(fn) crea la sesión, ejecuta tu función con la página y siempre cierra la sesión al terminar.
  • page.act(instruccion, opciones) ejecuta una acción descrita en lenguaje natural. Con opciones.variables, los valores sensibles (contraseñas, números de cuenta) se sustituyen como %nombre% sin pasar por el modelo de IA ni quedar en logs.
  • page.extract(instruccion) devuelve datos estructurados de la página.
  • page.observe(instruccion) devuelve las acciones disponibles sin ejecutarlas; puedes pasar una directamente a page.act.
  • page.goto(url) navega directo, sin IA.
  • browser.run resuelve a { data, sessionId }: data es lo que devuelve tu función y sessionId identifica la sesión para depuración.
Solo puede haber una sesión de navegador abierta a la vez por ejecución.
Mantén todo el recorrido relacionado dentro de una sola llamada a browser.run. Así conservas el estado de la sesión —incluidos login, cookies y pestañas— hasta terminar el guion.

Ejemplo completo: reporte de cobranza

No escribas credenciales directamente en code ni en la definición del paso. Pásalas por input con plantillas ({{context.*}} o {{trigger.body.*}}) y úsalas con variables dentro de act.

Buenas prácticas para act, extract y observe

Los guiones confiables siguen estas reglas. Un guion con instrucciones vagas o combinadas falla de formas difíciles de depurar.

Una acción por act

Cada llamada debe describir una sola acción atómica:

Describe el elemento por tipo y texto, no por color

Usa el verbo correcto: haz clic para botones y enlaces, escribe para campos de texto, selecciona para menús desplegables, marca/desmarca para casillas. Si conoces la URL, page.goto(url) es más rápido y estable que pedirle al agente que navegue:

Datos sensibles siempre en variables

Los valores de variables se sustituyen localmente como %nombre%: no pasan por el modelo de IA ni quedan en logs. Nunca interpoles contraseñas directamente en el texto de la instrucción.

Pide campos concretos en extract

Nombra exactamente qué campos quieres y en qué formato:
Usa extract solo para leer y act solo para interactuar; no mezcles ambos en una instrucción.

Verifica antes de actuar con observe

En páginas que cambian de estado, observe devuelve las acciones disponibles sin ejecutarlas. Puedes inspeccionar el resultado y pasarlo directo a act, que lo reproduce sin volver a consultar al modelo:
También puedes buscar varios candidatos en una sola consulta y elegir el correcto. Como description es texto generado, normalízalo antes de compararlo:
Vuelve a llamar observe después de navegar, enviar un formulario o actualizar filtros. Las acciones observadas representan el estado de la página en ese momento y pueden dejar de ser válidas cuando cambia el contenido.

Trabaja con pestañas nuevas

Si un clic abre y enfoca otra pestaña, las siguientes llamadas a act, observe y extract trabajan sobre esa pestaña automáticamente:
El objeto de la página original no cambia cuando se abre otra pestaña. Si necesitas alternar entre ambas, conserva una referencia y cambia la pestaña activa de forma explícita:
Cada locator pertenece a la pestaña donde fue creado. No reutilices un locator de la pestaña original sobre la nueva. Si el sitio abre una pestaña en segundo plano sin enfocarla, cambia la pestaña activa antes de usar act, observe o extract.

Reduce tiempo y costo

Cada operación interpretada por IA añade latencia y consumo. Sigue este orden de preferencia:
  1. Usa goto cuando ya conoces la URL.
  2. Usa una sola llamada a observe para localizar varios candidatos visibles y luego pasa la acción elegida a act.
  3. Agrupa en un solo extract todos los campos que necesitas del mismo estado de la página.
  4. Usa act solo para interacciones y conserva una acción atómica por llamada.
  5. Valida el resultado antes de continuar para detener pronto un guion incorrecto.
Por ejemplo, una extracción conjunta evita releer la misma página varias veces:
En páginas estables puedes acortar esperas por operación. No uses límites agresivos en portales lentos o con contenido dinámico:
Para páginas grandes, limita el análisis a la sección relevante y excluye zonas repetitivas. Esto reduce el contenido que debe procesarse:
Usa este patrón solo cuando los selectores sean estables. Si el portal cambia con frecuencia, una instrucción descriptiva sin locator suele ser más mantenible.

Valida el resultado antes de devolverlo

Un paso que falla con un error claro es más útil que un output incompleto que rompe los pasos siguientes.

¿Guion o agente autónomo?

browser.script es más rápido, más barato y más predecible cuando el camino es fijo. browser.use gana cuando el agente tiene que decidir por sí mismo dónde buscar.

Salida del paso

Lo que asignes a output se guarda como resultado del paso y queda disponible para los siguientes con {{steps.N.output.*}}, igual que en code.javascript.

Errores frecuentes

Relacionado