Files
rpa_vision_v3/visual_workflow_builder/test_capture_externe.py
Dom a27b74cf22 v1.0 - Version stable: multi-PC, détection UI-DETR-1, 3 modes exécution
- Frontend v4 accessible sur réseau local (192.168.1.40)
- Ports ouverts: 3002 (frontend), 5001 (backend), 5004 (dashboard)
- Ollama GPU fonctionnel
- Self-healing interactif
- Dashboard confiance

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 11:23:51 +01:00

113 lines
4.1 KiB
Python

#!/usr/bin/env python3
"""
Test de la capture externe - Visual Workflow Builder
Ce script teste la nouvelle fonctionnalité de capture d'application externe
"""
import time
import subprocess
import sys
def test_capture_workflow():
"""Test du workflow complet de capture externe"""
print("🎯 Test du Workflow de Capture Externe")
print("=" * 50)
print("\n1. 📋 Instructions de test :")
print(" - Ouvrez une application (ex: calculatrice, éditeur de texte)")
print(" - Gardez cette application visible")
print(" - Ouvrez Visual Workflow Builder dans votre navigateur")
print(" - Créez un nœud Action et ouvrez la sélection visuelle")
print("\n2. 🔄 Workflow attendu :")
print(" ✅ Interface de choix de mode s'affiche")
print(" ✅ Clic sur 'Capturer Application Externe'")
print(" ✅ Countdown 5-4-3-2-1 s'affiche en plein écran")
print(" ✅ Capture automatique de l'application cible")
print(" ✅ Retour à l'interface avec la capture")
print("\n3. 🎮 Test interactif :")
input(" Appuyez sur Entrée quand vous êtes prêt à tester...")
# Ouvrir une application de test
print("\n📱 Ouverture d'une application de test (calculatrice)...")
try:
if sys.platform == "linux":
subprocess.Popen(["gnome-calculator"], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
elif sys.platform == "darwin":
subprocess.Popen(["open", "-a", "Calculator"], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
elif sys.platform == "win32":
subprocess.Popen(["calc.exe"], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
time.sleep(2)
print("✅ Application de test ouverte")
except Exception as e:
print(f"⚠️ Impossible d'ouvrir l'application de test: {e}")
print(" Ouvrez manuellement une application pour le test")
print("\n🌐 Ouvrez maintenant votre navigateur sur http://localhost:3000")
print(" et testez la sélection visuelle avec le mode externe")
print("\n✅ Critères de réussite :")
print(" - Le countdown s'affiche correctement")
print(" - La capture montre l'application cible (pas le navigateur)")
print(" - L'interface permet de sélectionner des éléments")
print(" - Les sélecteurs sont générés correctement")
def test_api_capture():
"""Test direct de l'API de capture"""
print("\n🔧 Test de l'API de capture...")
import requests
try:
# Test de capture immédiate
response = requests.post(
'http://localhost:5002/api/screen-capture/capture',
json={},
timeout=10
)
if response.status_code == 200:
data = response.json()
print(f"✅ API de capture fonctionnelle: {data['width']}x{data['height']}")
return True
else:
print(f"❌ Erreur API: {response.status_code}")
return False
except Exception as e:
print(f"❌ Erreur de connexion API: {e}")
return False
def main():
"""Fonction principale"""
print("🚀 Test de Capture Externe - Visual Workflow Builder")
print("=" * 60)
# Test de l'API
if not test_api_capture():
print("\n❌ L'API de capture ne fonctionne pas.")
print(" Assurez-vous que le backend est démarré avec ./start_full.sh")
return 1
# Test du workflow
test_capture_workflow()
print("\n" + "=" * 60)
print("📝 Rapport de test :")
print(" - API de capture : ✅ Fonctionnelle")
print(" - Interface utilisateur : 🔄 À tester manuellement")
print(" - Workflow complet : 🔄 À valider")
print("\n💡 Prochaines améliorations possibles :")
print(" - Sélection de fenêtre spécifique")
print(" - Raccourci clavier pour capture")
print(" - Prévisualisation avant capture")
print(" - Capture de région spécifique")
return 0
if __name__ == "__main__":
sys.exit(main())