Ir al contenido

Modo de automatización

El modo de automatización está pensado para bancos de pruebas automatizados que necesitan iniciar Guida, conectarse a WebView2 mediante CDP, abrir un espacio de trabajo, crear pestañas, esperar a que estén listas y cerrar la aplicación de forma determinista.

Está separado de la API del panel operativo y de la API Remote Ops. Los endpoints del panel son endpoints de monitorización en sola lectura. Remote Ops es una API de control por canal de confianza, habilitada explícitamente, para nodos en vivo. Los endpoints de automatización son para bancos de pruebas deterministas y solo están disponibles cuando Guida se inicia con --automation.

Las opciones exclusivas de automatización solo se aceptan cuando --automation está presente.

OpciónPropósito
--automationHabilita el modo de automatización
--workspace <path>Abre un espacio de trabajo al arrancar
--webview-user-data-dir <path>Usa un directorio específico de perfil WebView2
--cdp-port <port>Expone Chrome DevTools Protocol de WebView2 en el puerto indicado
--dashboard-host <address>Sobrescribe la dirección de enlace del servidor integrado
--dashboard-port <port>Sobrescribe el puerto del servidor integrado
--automation-token <token>Define el token requerido por las solicitudes /api/automation/*

Si no se proporciona un directorio de datos de usuario de WebView2, Guida crea un perfil temporal aislado para automatización. Si no se proporciona token de automatización, Guida genera uno y lo escribe en la consola.

Ejemplo:

Ventana de terminal
Guida.exe --automation `
--workspace C:\dev\btbrowser-workspace `
--webview-user-data-dir C:\temp\guida-webview `
--cdp-port 9222 `
--dashboard-host 127.0.0.1 `
--dashboard-port 9315 `
--automation-token test-token

Use --cdp-port cuando un banco de pruebas de estilo Playwright necesite conectarse al navegador WebView2 subyacente mediante Chrome DevTools Protocol.

CDP da al banco de pruebas inspección y automatización a nivel de navegador. La API de automatización de Guida cubre operaciones específicas de Guida, como abrir espacios de trabajo, crear pestañas de Guida, activar pestañas, esperar a que estén listas y cerrar la aplicación.

Los endpoints de automatización requieren una de estas formas de cabecera:

X-Guida-Automation-Token: test-token

o:

Authorization: Bearer test-token

Cuando el modo de automatización está deshabilitado, los endpoints /api/automation/* devuelven 404. Cuando el modo está habilitado pero falta el token o es incorrecto, las solicitudes se rechazan.

Todos los endpoints están bajo /api/automation.

EndpointPropósito
GET /api/automation/statusDevuelve espacio de trabajo, flujo activo, pestaña activa y número de pestañas
GET /api/automation/sessionAbre un flujo SSE de latido para comprobaciones de ciclo de vida del banco de pruebas
POST /api/automation/workspaceAbre un espacio de trabajo desde { "path": "..." }
GET /api/automation/tabsLista las pestañas de Guida visibles para el banco de pruebas
POST /api/automation/tabsCrea una pestaña desde { "name": "...", "url": "...", "activate": true, "waitForLoad": true }
POST /api/automation/tabs/{tabId}/activateActiva una pestaña existente
GET /api/automation/tabs/active/readyEspera a que la pestaña activa esté lista; admite timeoutMs
POST /api/automation/shutdownSolicita el cierre de Guida
  1. Iniciar Guida con --automation, un puerto de panel y un token de automatización conocido.
  2. Llamar a GET /api/automation/status hasta que Guida sea accesible.
  3. Abrir un espacio de trabajo si no se proporcionó al iniciar.
  4. Crear o activar una pestaña de Guida.
  5. Esperar a GET /api/automation/tabs/active/ready.
  6. Conectar el banco de pruebas del navegador al puerto CDP cuando se necesite automatización a nivel de navegador.
  7. Llamar a POST /api/automation/shutdown durante el desmontaje.

Mantenga el modo de automatización local o dentro de un entorno de pruebas de confianza. A diferencia de la API del panel, los endpoints de automatización pueden abrir espacios de trabajo, crear y activar pestañas, y cerrar Guida.

El acceso remoto por red privada sin control debe usar la API del panel operativo en sola lectura. El control remoto por red privada para herramientas de operador debe usar la API Remote Ops, no el modo de automatización.