Automatisation d'applications Electron
Automatisez n'importe quelle application de bureau Electron en utilisant agent-browser. Les applications Electron sont construites sur Chromium et exposent un port Chrome DevTools Protocol (CDP) auquel agent-browser peut se connecter, permettant ainsi le même flux de travail d'instantané et d'interaction que pour les pages web.
Flux de travail principal
- Lancez l'application Electron avec le débogage à distance activé
- Connectez agent-browser au port CDP
- Instantané pour découvrir les éléments interactifs
- Interagissez en utilisant les références d'éléments
- Re-instantané après une navigation ou un changement d'état
# Lancer une application Electron avec le débogage à distance
open -a "Slack" --args --remote-debugging-port=9222
# Connecter agent-browser à l'application
agent-browser connect 9222
# Flux de travail standard à partir de là
agent-browser snapshot -i
agent-browser click @e5
agent-browser screenshot slack-desktop.png
Lancement d'applications Electron avec CDP
Chaque application Electron prend en charge le flag --remote-debugging-port car il est intégré à Chromium.
macOS
# Slack
open -a "Slack" --args --remote-debugging-port=9222
# VS Code
open -a "Visual Studio Code" --args --remote-debugging-port=9223
# Discord
open -a "Discord" --args --remote-debugging-port=9224
# Figma
open -a "Figma" --args --remote-debugging-port=9225
# Notion
open -a "Notion" --args --remote-debugging-port=9226
# Spotify
open -a "Spotify" --args --remote-debugging-port=9227
Linux
slack --remote-debugging-port=9222
code --remote-debugging-port=9223
discord --remote-debugging-port=9224
Windows
"C:\Users\%USERNAME%\AppData\Local\slack\slack.exe" --remote-debugging-port=9222
"C:\Users\%USERNAME%\AppData\Local\Programs\Microsoft VS Code\Code.exe" --remote-debugging-port=9223
Important : Si l'application est déjà en cours d'exécution, quittez-la d'abord, puis relancez-la avec le flag. Le flag --remote-debugging-port doit être présent au moment du lancement.
Connexion
# Se connecter à un port spécifique
agent-browser connect 9222
# Ou utiliser --cdp sur chaque commande
agent-browser --cdp 9222 snapshot -i
# Détection automatique d'une application Chromium en cours d'exécution
agent-browser --auto-connect snapshot -i
Après connect, toutes les commandes suivantes ciblent l'application connectée sans avoir besoin de --cdp.
Gestion des onglets
Les applications Electron ont souvent plusieurs fenêtres ou webviews. Utilisez les commandes d'onglet pour les lister et basculer entre elles :
# Lister toutes les cibles disponibles (fenêtres, webviews, etc.)
agent-browser tab
# Passer à un onglet spécifique par index
agent-browser tab 2
# Passer par motif d'URL
agent-browser tab --url "*settings*"
Prise en charge des Webviews
Les éléments <webview> d'Electron sont automatiquement détectés et peuvent être contrôlés comme des pages normales. Les webviews apparaissent comme des cibles séparées dans la liste des onglets avec type: "webview" :
# Se connecter à l'application Electron en cours d'exécution
agent-browser connect 9222
# Lister les cibles – les webviews apparaissent à côté des pages
agent-browser tab
# Exemple de sortie :
# 0: [page] Slack - Fenêtre principale https://app.slack.com/
# 1: [webview] Contenu intégré https://example.com/widget
# Passer à une webview
agent-browser tab 1
# Interagir normalement avec la webview
agent-browser snapshot -i
agent-browser click @e3
agent-browser screenshot webview.png
Remarque : La prise en charge des webviews fonctionne via une connexion CDP brute.
Schémas courants
Inspecter et naviguer dans une application
open -a "Slack" --args --remote-debugging-port=9222
sleep 3 # Attendre le démarrage de l'application
agent-browser connect 9222
agent-browser snapshot -i
# Lire la sortie de l'instantané pour identifier les éléments de l'interface utilisateur
agent-browser click @e10 # Naviguer vers une section
agent-browser snapshot -i # Re-instantané après la navigation
Prendre des captures d'écran d'applications de bureau
agent-browser connect 9222
agent-browser screenshot app-state.png
agent-browser screenshot --full full-app.png
agent-browser screenshot --annotate annotated-app.png
Extraire des données d'une application de bureau
agent-browser connect 9222
agent-browser snapshot -i
agent-browser get text @e5
agent-browser snapshot --json > app-state.json
Remplir des formulaires dans des applications de bureau
agent-browser connect 9222
agent-browser snapshot -i
agent-browser fill @e3 "requête de recherche"
agent-browser press Enter
agent-browser wait 1000
agent-browser snapshot -i
Exécuter plusieurs applications simultanément
Utilisez des sessions nommées pour contrôler plusieurs applications Electron en même temps :
# Se connecter à Slack
agent-browser --session slack connect 9222
# Se connecter à VS Code
agent-browser --session vscode connect 9223
# Interagir avec chacune indépendamment
agent-browser --session slack snapshot -i
agent-browser --session vscode snapshot -i
Schéma de couleurs
Le schéma de couleurs par défaut lors de la connexion via CDP peut être light. Pour préserver le mode sombre :
agent-browser connect 9222
agent-browser --color-scheme dark snapshot -i
Ou définissez-le globalement :
AGENT_BROWSER_COLOR_SCHEME=dark agent-browser connect 9222
Dépannage
« Connexion refusée » ou « Impossible de se connecter »
- Assurez-vous que l'application a été lancée avec
--remote-debugging-port=NNNN - Si l'application était déjà en cours d'exécution, quittez-la et relancez-la avec le flag
- Vérifiez que le port n'est pas utilisé par un autre processus :
lsof -i :9222
L'application se lance mais la connexion échoue
- Attendez quelques secondes après le lancement avant de vous connecter (
sleep 3) - Certaines applications prennent du temps pour initialiser leur webview
Les éléments n'apparaissent pas dans l'instantané
- L'application peut utiliser plusieurs webviews. Utilisez
agent-browser tabpour lister les cibles et basculer vers la bonne
Impossible de taper dans les champs de saisie
- Essayez
agent-browser keyboard type "texte"pour taper au niveau du focus actuel sans sélecteur - Certaines applications Electron utilisent des composants de saisie personnalisés ; utilisez
agent-browser keyboard inserttext "texte"pour contourner les événements de touche
Applications prises en charge
Toute application construite avec Electron fonctionne, y compris :
- Communication : Slack, Discord, Microsoft Teams, Signal, Telegram Desktop
- Développement : VS Code, GitHub Desktop, Postman, Insomnia
- Design : Figma, Notion, Obsidian
- Média : Spotify, Tidal
- Productivité : Todoist, Linear, 1Password
Si une application est construite avec Electron, elle prend en charge --remote-debugging-port et peut être automatisée avec agent-browser.