Aller au contenu

Mode d'automatisation

Le mode d’automatisation sert aux harnais de test qui doivent lancer Guida, se connecter à WebView2 via CDP, ouvrir un espace de travail, créer des onglets, attendre l’état prêt, puis fermer l’application de façon déterministe.

Il est séparé de l’API du tableau de bord opérationnel et de l’API Remote Ops. Les endpoints du tableau de bord sont en lecture seule. Remote Ops est une API de contrôle sur canal de confiance, explicitement activée, pour des nœuds en fonctionnement. Les endpoints d’automatisation servent aux harnais de test déterministes et ne sont disponibles que lorsque Guida est lancé avec --automation.

Les options propres à l’automatisation sont acceptées uniquement lorsque --automation est présent.

OptionUsage
--automationActive le mode d’automatisation
--workspace <path>Ouvre un espace de travail au démarrage
--webview-user-data-dir <path>Utilise un répertoire de profil WebView2 précis
--cdp-port <port>Expose le Chrome DevTools Protocol de WebView2 sur le port indiqué
--dashboard-host <address>Remplace l’adresse d’écoute du serveur intégré
--dashboard-port <port>Remplace le port du serveur intégré
--automation-token <token>Définit le jeton exigé par les requêtes /api/automation/*

Si aucun répertoire de données utilisateur WebView2 n’est fourni, Guida crée un profil d’automatisation temporaire isolé. Si aucun jeton d’automatisation n’est fourni, Guida en génère un et l’écrit dans la Console.

Exemple :

Fenêtre 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

Utilisez --cdp-port lorsqu’un harnais de type Playwright doit se connecter au navigateur WebView2 sous-jacent via Chrome DevTools Protocol.

CDP donne au harnais une inspection et une automatisation au niveau du navigateur. L’API d’automatisation de Guida couvre les opérations propres à Guida, comme ouvrir des espaces de travail, créer des onglets Guida, activer des onglets, attendre l’état prêt et fermer l’application.

Les endpoints d’automatisation exigent l’une de ces formes d’en-tête :

X-Guida-Automation-Token: test-token

ou :

Authorization: Bearer test-token

Lorsque le mode d’automatisation est désactivé, les endpoints /api/automation/* renvoient 404. Lorsque le mode est activé mais que le jeton manque ou est incorrect, les requêtes sont rejetées.

Tous les endpoints se trouvent sous /api/automation.

EndpointUsage
GET /api/automation/statusRenvoie l’espace de travail, le flux de travail actif, l’onglet actif et le nombre d’onglets
GET /api/automation/sessionOuvre un flux SSE de pulsation pour les contrôles de cycle de vie du harnais
POST /api/automation/workspaceOuvre un espace de travail depuis { "path": "..." }
GET /api/automation/tabsListe les onglets Guida visibles par le harnais
POST /api/automation/tabsCrée un onglet depuis { "name": "...", "url": "...", "activate": true, "waitForLoad": true }
POST /api/automation/tabs/{tabId}/activateActive un onglet existant
GET /api/automation/tabs/active/readyAttend que l’onglet actif soit prêt ; prend en charge timeoutMs
POST /api/automation/shutdownDemande l’arrêt de Guida
  1. Lancez Guida avec --automation, un port de tableau de bord et un jeton d’automatisation connu.
  2. Appelez GET /api/automation/status jusqu’à ce que Guida soit joignable.
  3. Ouvrez un espace de travail s’il n’a pas été fourni au lancement.
  4. Créez ou activez un onglet Guida.
  5. Attendez GET /api/automation/tabs/active/ready.
  6. Connectez le harnais de navigateur au port CDP lorsque l’automatisation au niveau du navigateur est nécessaire.
  7. Appelez POST /api/automation/shutdown pendant le nettoyage.

Gardez le mode d’automatisation local ou dans un environnement de test de confiance. Contrairement à l’API du tableau de bord, les endpoints d’automatisation peuvent ouvrir des espaces de travail, créer et activer des onglets, et arrêter Guida.

Pour un accès distant sur réseau privé sans contrôle, utilisez plutôt l’API du tableau de bord opérationnel en lecture seule. Pour un contrôle distant sur réseau privé destiné aux outils opérateur, utilisez l’API Remote Ops, pas le mode d’automatisation.