Evaluate JS
Evaluate JS
Sección titulada «Evaluate JS»Tipo: page-evaluate · Paquete: Browser v1.0.9 · Salida: object
Ejecuta código JavaScript dentro del contexto de la página y devuelve el resultado. Es una actividad avanzada: te da acceso directo al DOM y a las APIs de la página para casos que las demás actividades no cubren — leer un valor calculado, manipular un elemento difícil, o invocar una función de la propia página.
Cómo funciona
Sección titulada «Cómo funciona»Ejecuta el script en la página. Puede ser una expresión (document.title) o una función que recibe un argumento ((arg) => arg.total * 2), en cuyo caso el valor del parámetro arg se le pasa. Si el script devuelve una promesa, la actividad espera a que se resuelva. Devuelve lo que el script retorne.
- El
scriptse escribe como JavaScript real, sin comillas alrededor: corre en el navegador, no en el motor de expresiones. Los valores del playbook se pasan porarg, no concatenándolos dentro del código. argdebe ser serializable (texto, número, booleano, lista o diccionario).- No espera a ningún elemento ni tiene
timeout: si el script busca algo que aún no está, pon antes un Wait For. - El resultado no se escribe en el log (puede traer datos de la página): el log solo dice si hubo resultado.
Parámetros requeridos
Sección titulada «Parámetros requeridos»| Parámetro | Tipo | Por defecto | Descripción |
|---|---|---|---|
script | string | — | Expresión o función JavaScript. Ej: document.title o (arg) => arg.total * 2. |
Parámetros opcionales
Sección titulada «Parámetros opcionales»| Parámetro | Tipo | Por defecto | Descripción |
|---|---|---|---|
page | ZoanPageSession | — | La sesión de página. Omítela dentro de un body; fuera, pasa la variable de la sesión (p. ej. page = page). |
arg | object | — | Argumento que se pasa al script si este es una función. |
Devuelve un object con el valor que retorne el script, serializado: texto, número, booleano, lista u objeto. Si el script no devuelve nada (undefined) o devuelve null, la salida queda vacía. Un elemento del DOM no sirve fuera de la página: devuelve su texto o sus atributos.
Ejemplo
Sección titulada «Ejemplo»Page Evaluate script = document.title → output: titulo
Page Evaluate script = () => Array.from(document.querySelectorAll('.precio')).map(e => e.innerText) → output: preciosFor Each items = precios itemVariable = precio └─ activities: Log message = "Precio: " + precioPasar un valor del playbook con arg:
Page Evaluate script = (codigo) => document.querySelector(`[data-codigo="${codigo}"]`)?.innerText arg = codigoProducto → output: descripcionErrores comunes
Sección titulada «Errores comunes»| Mensaje | Causa y solución |
|---|---|
'script' es obligatorio. | El script está vacío. |
Error de JavaScript (p. ej. ReferenceError: x is not defined, TypeError: Cannot read properties of null) | El script falló dentro de la página. Pruébalo antes en la consola del navegador (F12) y protege los accesos a elementos que pueden no existir (?.). |
'page' debe ser una ZoanPageSession. | page está vacío fuera de un body. |
Actividades relacionadas
Sección titulada «Actividades relacionadas»- Get Text / Get Attribute — opciones simples y recomendadas para leer datos.
- Click — interacción estándar sin necesidad de JavaScript.