#!/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())