Was macht Electron-App-Automatisierung?
Automatisieren Sie jede Electron-Desktop-App mit agent-browser. Electron-Apps basieren auf Chromium und legen einen Chrome DevTools Protocol (CDP)-Port offen, mit dem agent-browser eine Verbindung herstellen kann. Dies ermöglicht denselben Snapshot-Interact-Workflow, der auch für Webseiten verwendet wird.
Kern-Workflow
- Starten Sie die Electron-App mit aktiviertem Remote-Debugging
- Verbinden Sie agent-browser mit dem CDP-Port
- Snapshot zur Erkennung interaktiver Elemente erstellen
- Interagieren Sie mithilfe von Element-Referenzen
- Erneuter Snapshot nach Navigation oder Zustandsänderungen
# Electron-App mit Remote-Debugging starten
open -a "Slack" --args --remote-debugging-port=9222
# agent-browser mit der App verbinden
agent-browser connect 9222
# Standard-Workflow ab hier
agent-browser snapshot -i
agent-browser click @e5
agent-browser screenshot slack-desktop.png
Electron-Apps mit CDP starten
Jede Electron-App unterstützt das Flag --remote-debugging-port, da es in Chromium integriert ist.
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
Wichtig: Wenn die App bereits ausgeführt wird, beenden Sie sie zuerst und starten Sie sie dann mit dem Flag neu. Das Flag --remote-debugging-port muss beim Start vorhanden sein.
Verbinden
# Mit einem bestimmten Port verbinden
agent-browser connect 9222
# Oder --cdp bei jedem Befehl verwenden
agent-browser --cdp 9222 snapshot -i
# Automatische Erkennung einer laufenden Chromium-basierten App
agent-browser --auto-connect snapshot -i
Nach connect zielen alle nachfolgenden Befehle auf die verbundene App, ohne dass --cdp erforderlich ist.
Tab-Verwaltung
Electron-Apps haben oft mehrere Fenster oder Webviews. Verwenden Sie Tab-Befehle, um diese aufzulisten und zwischen ihnen zu wechseln:
# Alle verfügbaren Ziele auflisten (Fenster, Webviews usw.)
agent-browser tab
# Zu einem bestimmten Tab nach Index wechseln
agent-browser tab 2
# Nach URL-Muster wechseln
agent-browser tab --url "*settings*"
Webview-Unterstützung
Electron <webview>-Elemente werden automatisch erkannt und können wie normale Seiten gesteuert werden. Webviews erscheinen als separate Ziele in der Tab-Liste mit type: "webview":
# Mit laufender Electron-App verbinden
agent-browser connect 9222
# Ziele auflisten – Webviews erscheinen neben Seiten
agent-browser tab
# Beispielausgabe:
# 0: [page] Slack - Hauptfenster https://app.slack.com/
# 1: [webview] Eingebetteter Inhalt https://example.com/widget
# Zu einem Webview wechseln
agent-browser tab 1
# Normal mit dem Webview interagieren
agent-browser snapshot -i
agent-browser click @e3
agent-browser screenshot webview.png
Hinweis: Die Webview-Unterstützung funktioniert über eine direkte CDP-Verbindung.
Häufige Muster
App inspizieren und navigieren
open -a "Slack" --args --remote-debugging-port=9222
sleep 3 # Auf App-Start warten
agent-browser connect 9222
agent-browser snapshot -i
# Snapshot-Ausgabe lesen, um UI-Elemente zu identifizieren
agent-browser click @e10 # Zu einem Abschnitt navigieren
agent-browser snapshot -i # Erneuter Snapshot nach Navigation
Screenshots von Desktop-Apps erstellen
agent-browser connect 9222
agent-browser screenshot app-state.png
agent-browser screenshot --full full-app.png
agent-browser screenshot --annotate annotated-app.png
Daten aus einer Desktop-App extrahieren
agent-browser connect 9222
agent-browser snapshot -i
agent-browser get text @e5
agent-browser snapshot --json > app-state.json
Formulare in Desktop-Apps ausfüllen
agent-browser connect 9222
agent-browser snapshot -i
agent-browser fill @e3 "Suchanfrage"
agent-browser press Enter
agent-browser wait 1000
agent-browser snapshot -i
Mehrere Apps gleichzeitig ausführen
Verwenden Sie benannte Sitzungen, um mehrere Electron-Apps gleichzeitig zu steuern:
# Mit Slack verbinden
agent-browser --session slack connect 9222
# Mit VS Code verbinden
agent-browser --session vscode connect 9223
# Unabhängig voneinander interagieren
agent-browser --session slack snapshot -i
agent-browser --session vscode snapshot -i
Farbschema
Das Standard-Farbschema bei der Verbindung über CDP ist möglicherweise light. Um den Dunkelmodus beizubehalten:
agent-browser connect 9222
agent-browser --color-scheme dark snapshot -i
Oder global festlegen:
AGENT_BROWSER_COLOR_SCHEME=dark agent-browser connect 9222
Fehlerbehebung
"Verbindung abgelehnt" oder "Kann nicht verbinden"
- Stellen Sie sicher, dass die App mit
--remote-debugging-port=NNNNgestartet wurde - Wenn die App bereits ausgeführt wurde, beenden und mit dem Flag neu starten
- Überprüfen Sie, ob der Port nicht von einem anderen Prozess belegt ist:
lsof -i :9222
App wird gestartet, aber Verbindung schlägt fehl
- Warten Sie einige Sekunden nach dem Start, bevor Sie die Verbindung herstellen (
sleep 3) - Manche Apps benötigen Zeit, um ihr Webview zu initialisieren
Elemente werden im Snapshot nicht angezeigt
- Die App verwendet möglicherweise mehrere Webviews. Verwenden Sie
agent-browser tab, um Ziele aufzulisten und zum richtigen zu wechseln
Kann nicht in Eingabefelder tippen
- Versuchen Sie
agent-browser keyboard type "text", um ohne Selektor an der aktuellen Fokusposition zu tippen - Manche Electron-Apps verwenden benutzerdefinierte Eingabekomponenten; verwenden Sie
agent-browser keyboard inserttext "text", um Tastenereignisse zu umgehen
Unterstützte Apps
Jede App, die auf Electron basiert, funktioniert, einschließlich:
- Kommunikation: Slack, Discord, Microsoft Teams, Signal, Telegram Desktop
- Entwicklung: VS Code, GitHub Desktop, Postman, Insomnia
- Design: Figma, Notion, Obsidian
- Medien: Spotify, Tidal
- Produktivität: Todoist, Linear, 1Password
Wenn eine App mit Electron erstellt wurde, unterstützt sie --remote-debugging-port und kann mit agent-browser automatisiert werden.