Las sesiones son gratis: paga solo por el tráfico
Navegador en la nube con modo UI
Abre esa misma sesión en una pestaña de un navegador real y mírala. Sea cual sea el estado en el que estaba la página cuando algo salió mal, eso es lo que ves.
- Abre una vista en vivo de una sesión en ejecución en lugar de volver a lanzar el trabajo para reproducir el fallo
- Pasa un CAPTCHA difícil o una solicitud inesperada de 2FA a una persona y deja que el script se reconecte
- Las cookies y el estado de la página se mantienen; solo cambia la conexión
Modo UI
Abre la sesión
en un navegador real.
Cualquier sesión en ejecución puede abrirse en una vista en vivo: el mismo navegador que controlaba el script, en una pestaña tuya. Haz clic en lo que el script no puede y luego devuélvele el control.
Por qué importa el modo UI en un navegador en la nube
Un script headless que falla a mitad de camino normalmente solo te deja un stack trace. Quizá un número de línea. Suerte averiguando qué clic falló realmente en el paso catorce de veinte, o si la página siquiera cargó como debía.
El navegador en la nube con modo UI te da una segunda opción: abre esa misma sesión en una pestaña de un navegador real y mírala. Sea cual sea el estado en el que estaba la página cuando algo salió mal, eso es lo que ves: sin reconstruirlo después a partir de la salida de la consola, sin relanzar el trabajo entero cinco veces con la esperanza de obtener un mensaje de error más claro.
Esto suele importar más en inicios de sesión con pasos adicionales, formularios que cambian según las respuestas anteriores y flujos de compra. Básicamente, en cualquier lugar donde una ventana emergente inesperada puede romper en silencio un script que funcionaba bien una hora antes, y nadie escribió una regla para esa ventana emergente concreta porque nadie la esperaba.
Características clave del modo visual
La vista en vivo sirve para varias tareas según para qué la necesites. A veces es para detectar un error y a veces para superarlo.
Depuración de scripts en tiempo real (depuración en vivo)
Una ejecución detenida o fallida no suele significar que la sesión haya muerto. A menudo sigue ahí, solo que desconectada de todo. Abre una vista en vivo y verás la sesión directamente, en pleno fallo, en lugar de adivinar a partir de un archivo de registro cómo sería la página en ese momento.
Esto también detecta problemas que nunca lanzan un error claro: una página que cargó a medias, un desplazamiento del diseño que movió un botón justo antes de un clic, un modal que apareció medio segundo tarde.
Control interactivo de la sesión (Human-in-the-Loop)
Hay cosas que un script no puede superar por sí solo: un CAPTCHA difícil, una solicitud inesperada de 2FA, alguna comprobación de seguridad que nadie previó. Cuando eso ocurre, la conexión de automatización se corta, se abre una vista en vivo de la misma sesión y alguien resuelve a mano la parte molesta.
Después, el script se reconecta y continúa desde ahí. Las cookies, el estado de la página, todo se mantiene; solo cambia la conexión. Esto importa igual en sesiones que se ejecutan con una configuración antidetección: un navegador antidetección con una huella digital convincente e indetectable puede toparse igualmente con una comprobación que solo una persona real puede superar.
Grabación de sesiones y capturas de pantalla
Ver una sesión en vivo solo sirve si estás presente cuando ocurre. La mayoría de las depuraciones acaban necesitando algo que revisar después: una captura de pantalla del momento en que todo se rompió, una grabación completa de la sesión, un registro de red para comprobar qué se envió y qué se recibió realmente.
No todas las plataformas de navegador en la nube ofrecen las tres opciones de la misma manera, así que conviene consultar directamente con Floppydata qué se admite antes de montar un flujo de trabajo en torno a un formato concreto. A menudo basta con una captura de pantalla justo antes del fallo; el vídeo y los registros de red demuestran su valor en los casos más difíciles, donde nada visual explica qué salió mal.
Dónde se usa realmente
Hay algunas situaciones que se repiten una y otra vez y que no siempre se parecen a simple vista:
-
Flujos de registro y comprobaciones antifraude en el pago
Flujos de registro con verificación por SMS o páginas de pago que de vez en cuando activan una comprobación antifraude: molestos de automatizar, rápidos de superar a mano.
-
Distinguir un error real de un selector inestable
Equipos de control de calidad que comprueban si un test de extremo a extremo fallido es un error real o solo un selector inestable, en lugar de relanzar toda la suite a ciegas.
-
Reproducir lo que describió un cliente
Equipos de soporte que reproducen un error que un cliente describió pero no pudo capturar bien en pantalla.
-
Confirmar que la página se renderizó como se esperaba
Trabajos de scraping que confirman que la página se renderizó realmente como espera un selector, antes de asumir que el selector está roto.
-
Mostrarlo funcionando en vivo
Demos para clientes, donde mostrar algo funcionando en vivo vale más que pedirle a alguien que confíe en un registro de terminal.
Cómo activar la UI / el visor en vivo en tu script
Una sesión no puede ejecutar a la vez una conexión de automatización y una vista en vivo. Cerrar una abre la puerta a la otra, y volver después lleva más o menos lo mismo que el cambio inicial:
- El script se desconecta de su sesión actual.
- Se solicita una vista en vivo de esa misma sesión y se abre en una pestaña del navegador.
- Una persona se encarga de lo que haga falta: un CAPTCHA, un código 2FA, una pantalla de consentimiento puntual.
- El script solicita una nueva conexión a la sesión y continúa justo donde se quedó.
await browser.close(); // hand off to a human// POST /v2/browser/sessions/{id}/live-view -> { liveViewUrl }// person opens liveViewUrl, solves the CAPTCHA / 2FA prompt// GET /v2/browser/sessions/{id} -> fresh connectUrl, script resumes Tanto connectUrl como liveViewUrl deben tratarse como contraseñas: no las guardes en ningún registro, no las pegues en un ticket de soporte y solicita una nueva en lugar de conservar un enlace antiguo más tiempo del necesario.