Ir al contenido

Open Browser

Tipo: browser-open  ·  Paquete: Browser v1.0.9  ·  Salida: ZoanPageSession

Abre un navegador web y devuelve una sesión de página lista para trabajar. Es el punto de partida de toda automatización web: casi siempre es la primera actividad del navegador en tu playbook.

Usa el navegador ya instalado en la máquina (Chrome, Edge o Firefox), sin descargas adicionales, o el Chromium que trae el paquete. Con userDataDir puedes cargar el perfil real del usuario (sus cookies y sesiones iniciadas), útil para saltarte logins.

Tienes dos modos de uso (explicados en detalle en la introducción del paquete):

  • Con body: las actividades dentro del sub-flujo heredan la sesión automáticamente y el navegador se cierra solo al terminar, también si algo falla dentro (salvo que actives keepOpen). La forma más simple.
  • Sin body: guarda la sesión en una variable de salida y la pasas a las siguientes actividades; tú la cierras con Close Browser.

Al abrir:

  1. Elige el navegador: el de browser; si está vacío, el navegador predeterminado de la configuración del proyecto; si tampoco hay, chrome. Si nadie eligió y Chrome no está instalado, usa el Chromium incluido (y lo deja anotado en el log). Ver navegadores compatibles.
  2. Decide si hay ventana: el headless de la actividad; si está vacío, el de la configuración del proyecto; si tampoco, con ventana (en una máquina sin pantalla, sin ventana).
  3. Arranca el navegador y espera a que responda, hasta timeout.
    • Chrome y Edge se abren con un perfil temporal limpio en la carpeta temporal del sistema (zoan-browser-<puerto>), que se borra al cerrar. Ese perfil descarga los archivos sin preguntar y guarda los PDF en lugar de abrirlos en el visor, lo que facilita Wait for Download.
    • Con userDataDir usa ese perfil (cookies, sesiones, contraseñas y extensiones) y reutiliza su primera pestaña. El navegador no debe estar abierto con ese mismo perfil.
  4. Si indicas url, navega a ella y espera al evento load de la página (dentro del mismo timeout).

Sin ventana, el área visible es de 1920×1080; con ventana, la página ocupa el tamaño de la ventana.

Ninguno. (Todos son opcionales: por defecto abre Chrome con una página en blanco.)

ParámetroTipoPor defectoDescripción
browserstring"chrome"Navegador: chrome · edge · firefox · chromium. chrome, edge y firefox usan el instalado en el equipo; chromium, el que trae el paquete. Vacío: el de la configuración del proyecto o, si no hay, chrome.
urlstring—URL a la que navegar al abrir. Si se omite, la página empieza en blanco.
headlessboolfalseEjecutar sin ventana visible (modo segundo plano). Vacío: el de la configuración del proyecto; si no hay, con ventana salvo en máquinas sin pantalla.
windowStatestring"maximized"Estado inicial de la ventana (si no es headless): maximized · normal · minimized.
timeoutnumber90000Tiempo máximo en ms para arrancar el navegador y cargar url: en las sesiones desatendidas el navegador tarda más en arrancar. 0 o negativo: el valor por defecto. No usa el tiempo de espera del proyecto.
slowMonumber0Ralentiza cada operación N ms (útil para depurar y ver qué hace el bot).
userDataDirstring—Ruta al perfil del navegador (p. ej. C:\Users\{usuario}\AppData\Local\Google\Chrome\User Data). Carga cookies, sesiones y contraseñas reales. El navegador debe estar totalmente cerrado antes.
executablePathstring—Ruta a un ejecutable de navegador basado en Chromium (.exe, .bat o .cmd). Tiene prioridad sobre browser.
argsList—Argumentos extra de lanzamiento del navegador, p. ej. ["--lang=es-CO"]. Los repetidos se descartan.
keepOpenboolfalseAl usar body, mantener abierto el navegador al terminar y devolver la sesión como salida.

Opcional. Actividades a ejecutar con este navegador; heredan la sesión sin configurar page. Al terminar (bien o con error) el navegador se cierra, salvo con keepOpen = true. Si se omite, la actividad devuelve la sesión como salida para usarla en pasos posteriores.

Una ZoanPageSession que representa la pestaña abierta:

UsoQué devuelve
Sin bodyLa sesión de página (el navegador sigue abierto hasta Close Browser).
Con body y keepOpen = trueLa misma sesión, todavía abierta, al terminar el body.
Con body y keepOpen = falseNada: el navegador ya se cerró.

Modo body (recomendado):

Open Browser browser = chrome url = "https://example.com" headless = false
└─ body:
Page Get Text selector = (h1) → output: titulo
Log message = "Título: " + titulo

Modo headless con salida (para producción desatendida):

Open Browser browser = chrome url = "https://portal.example.com" headless = true → output: page
Page Fill page = page selector = (#buscar) value = "factura 2026"
Close Browser session = page
MensajeCausa y solución
No se encontró chrome. Instálalo o indica la ruta con 'executablePath'. (o edge, Firefox)Elegiste un navegador que no está en sus rutas estándar de instalación. Instálalo, elige otro en browser o indica executablePath.
No se encontró el ejecutable del navegador.La ruta de executablePath no existe. Corrígela.
La extensión '.lnk' no está permitida para executablePath. Usa .exe, .bat o .cmd.executablePath apunta a un acceso directo u otro tipo de archivo. Usa la ruta del .exe.
[browser-open] Invalid value '…' for 'browser'. Allowed: chrome, edge, firefox, chromium.Escribiste en browser (o en windowState) un valor que no está en la lista. Elige uno de los admitidos.
Navegador no reconocido: '…'. Usa: chrome, edge, firefox, chromium.El navegador llegó de una expresión o de la configuración del proyecto con un valor que no es uno de los cuatro admitidos.
El endpoint de depuración del navegador (puerto …) no respondió en 90000 ms: …Chrome o Edge arrancó pero no respondió a tiempo, o se cerró nada más abrir (el detalle final lo dice). Sube timeout o revisa que el equipo pueda abrir el navegador.
No se pudo iniciar el proceso del navegador.Windows no dejó lanzar el ejecutable. Revisa permisos o antivirus.
Error al abrir con userDataDirEl perfil está en uso por un navegador abierto. Ciérralo por completo antes de ejecutar.
Timeout 90000ms exceeded al cargar urlLa página no terminó de cargar a tiempo. Sube timeout, o abre sin url y navega con Navigate eligiendo otro waitUntil.