# đŸ§Ș Guide de Test Complet - Visual Workflow Builder ## 🚀 DĂ©marrage Rapide ### Option 1 : Script Automatique (RecommandĂ©) ```bash cd visual_workflow_builder ./start_full.sh ``` Ce script va : - ✅ DĂ©marrer le backend Flask sur http://localhost:5000 - ✅ DĂ©marrer le frontend React sur http://localhost:3000 - ✅ Ouvrir automatiquement le navigateur - ✅ Afficher les logs en temps rĂ©el Pour arrĂȘter : **Ctrl+C** ### Option 2 : DĂ©marrage Manuel **Terminal 1 - Backend** : ```bash cd visual_workflow_builder/backend python app.py ``` **Terminal 2 - Frontend** : ```bash cd visual_workflow_builder/frontend npm start ``` ## ✅ ScĂ©nario de Test Complet ### Test 1 : CrĂ©er un Workflow Simple 1. **Ouvrir l'application** : http://localhost:3000 2. **Ajouter des Ă©tapes** : - Glisser "Navigate" depuis la palette - Glisser "Click" depuis la palette - Glisser "Type" depuis la palette 3. **Connecter les Ă©tapes** : - Cliquer sur le port de sortie de "Navigate" - Glisser vers le port d'entrĂ©e de "Click" - RĂ©pĂ©ter pour connecter "Click" Ă  "Type" 4. **Configurer les Ă©tapes** : **Navigate** : - Cliquer sur l'Ă©tape - Dans le panneau de propriĂ©tĂ©s, entrer : `https://example.com` **Click** : - Cliquer sur l'Ă©tape - Cliquer sur "SĂ©lection visuelle" đŸ“· - SĂ©lectionner un bouton dans la capture - Confirmer **Type** : - Cliquer sur l'Ă©tape - Cliquer sur "SĂ©lection visuelle" đŸ“· - SĂ©lectionner un champ de texte - Entrer le texte Ă  taper : `Hello World` 5. **Sauvegarder** : - Cliquer sur "Sauvegarder" dans la barre d'outils - VĂ©rifier la notification de succĂšs - Le bouton devrait afficher "SauvegardĂ©" ✓ 6. **ExĂ©cuter** : - Cliquer sur "ExĂ©cuter" - Observer l'exĂ©cution en temps rĂ©el - Les Ă©tapes changent de couleur selon leur Ă©tat ### Test 2 : SĂ©lecteur de Cible Interactif 1. **Ajouter une Ă©tape "Click"** 2. **Ouvrir le panneau de propriĂ©tĂ©s** 3. **Cliquer sur "SĂ©lection visuelle"** đŸ“· 4. **VĂ©rifier le dialog** : - ✅ Capture d'Ă©cran affichĂ©e - ✅ ÉlĂ©ments dĂ©tectĂ©s surlignĂ©s - ✅ Survol change la couleur (bleu) - ✅ Clic sĂ©lectionne l'Ă©lĂ©ment (vert) 5. **VĂ©rifier le panneau d'informations** : - ✅ Type d'Ă©lĂ©ment - ✅ Texte visible - ✅ SĂ©lecteurs disponibles - ✅ SĂ©lecteur recommandĂ© 6. **Confirmer la sĂ©lection** : - ✅ Dialog se ferme - ✅ SĂ©lecteur insĂ©rĂ© dans le champ - ✅ Validation automatique (icĂŽne verte) ### Test 3 : Gestion des Variables 1. **Ajouter une Ă©tape "Extract"** 2. **Configurer l'extraction** : - SĂ©lecteur : `h1.title` - Variable : `page_title` 3. **Ajouter une Ă©tape "Type"** 4. **Utiliser la variable** : - Texte : `${page_title}` 5. **VĂ©rifier la validation** : - ✅ RĂ©fĂ©rence de variable valide ### Test 4 : Workflow avec Conditions 1. **CrĂ©er un workflow** : - Navigate → Extract → Condition → Click (true) / Wait (false) 2. **Configurer la condition** : - Expression : `${page_title} == "Welcome"` 3. **Connecter les branches** : - Port "true" → Click - Port "false" → Wait 4. **Sauvegarder et exĂ©cuter** ### Test 5 : Workflow avec Boucles 1. **CrĂ©er un workflow** : - Navigate → Loop → Click → Extract 2. **Configurer la boucle** : - Type : `repeat` - Count : `3` 3. **Connecter la boucle** : - Loop → Click (dĂ©but de boucle) - Extract → Loop (retour) 4. **Sauvegarder et exĂ©cuter** ## 🎯 Points de VĂ©rification ### Interface Utilisateur - [ ] Palette affiche toutes les catĂ©gories - [ ] Drag & drop fonctionne - [ ] Connexions entre Ă©tapes fonctionnent - [ ] SĂ©lection d'Ă©tapes fonctionne - [ ] Suppression d'Ă©tapes fonctionne - [ ] Panneau de propriĂ©tĂ©s s'ouvre - [ ] Validation en temps rĂ©el fonctionne ### SĂ©lecteur de Cible - [ ] Bouton "SĂ©lection visuelle" visible - [ ] Dialog s'ouvre correctement - [ ] Capture d'Ă©cran s'affiche - [ ] ÉlĂ©ments sont dĂ©tectables - [ ] Survol fonctionne - [ ] SĂ©lection fonctionne - [ ] SĂ©lecteurs gĂ©nĂ©rĂ©s correctement - [ ] Confirmation insĂšre le sĂ©lecteur ### Sauvegarde - [ ] Bouton "Sauvegarder" actif avec des Ă©tapes - [ ] Notification de succĂšs affichĂ©e - [ ] ID de workflow retournĂ© - [ ] Bouton change en "SauvegardĂ©" ✓ - [ ] Sauvegarde ultĂ©rieure met Ă  jour (PUT) ### ExĂ©cution - [ ] Bouton "ExĂ©cuter" actif avec des Ă©tapes - [ ] Sauvegarde automatique si nĂ©cessaire - [ ] Notification de dĂ©marrage affichĂ©e - [ ] WebSocket connectĂ© - [ ] États des Ă©tapes mis Ă  jour - [ ] Animations des connexions - [ ] RĂ©sumĂ© d'exĂ©cution affichĂ© ## 🐛 DĂ©pannage ### Backend ne dĂ©marre pas **SymptĂŽme** : Erreur au dĂ©marrage du backend **Solutions** : ```bash # VĂ©rifier les dĂ©pendances pip install -r requirements.txt # VĂ©rifier le port lsof -i :5000 # Voir les logs cat backend.log ``` ### Frontend ne dĂ©marre pas **SymptĂŽme** : Erreur au dĂ©marrage du frontend **Solutions** : ```bash # RĂ©installer les dĂ©pendances cd frontend rm -rf node_modules package-lock.json npm install # Voir les logs cat frontend.log ``` ### Capture d'Ă©cran ne fonctionne pas **SymptĂŽme** : Erreur "Screen capture not available" **Solutions** : 1. VĂ©rifier que les modules core sont installĂ©s 2. VĂ©rifier les permissions d'accĂšs Ă  l'Ă©cran (macOS) 3. VĂ©rifier les logs du backend ### Sauvegarde Ă©choue **SymptĂŽme** : Erreur lors de la sauvegarde **Solutions** : 1. VĂ©rifier que le backend est accessible 2. VĂ©rifier la console du navigateur (F12) 3. VĂ©rifier les logs du backend 4. Tester l'endpoint manuellement : ```bash curl -X POST http://localhost:5000/api/workflows \ -H "Content-Type: application/json" \ -d '{"name":"Test","nodes":[],"edges":[]}' ``` ### ExĂ©cution Ă©choue **SymptĂŽme** : Erreur lors de l'exĂ©cution **Solutions** : 1. VĂ©rifier que le workflow est sauvegardĂ© 2. VĂ©rifier que toutes les Ă©tapes sont configurĂ©es 3. VĂ©rifier les logs du backend 4. Tester l'endpoint manuellement : ```bash curl -X POST http://localhost:5000/api/workflows/{id}/execute ``` ## 📊 Tests API Manuels ### Test de SantĂ© ```bash curl http://localhost:5000/health ``` **RĂ©sultat attendu** : ```json { "status": "healthy", "version": "1.0.0" } ``` ### Test de Sauvegarde ```bash curl -X POST http://localhost:5000/api/workflows \ -H "Content-Type: application/json" \ -d '{ "name": "Test Workflow", "description": "Test", "nodes": [ { "id": "node-1", "type": "click", "position": {"x": 100, "y": 100}, "label": "Click", "parameters": {"target": "button.submit"} } ], "edges": [], "variables": {}, "metadata": {} }' ``` **RĂ©sultat attendu** : ```json { "id": "workflow-123", "message": "Workflow created successfully" } ``` ### Test de Capture d'Écran ```bash curl -X POST http://localhost:5000/api/screen-capture/capture \ -H "Content-Type: application/json" \ -d '{}' ``` **RĂ©sultat attendu** : ```json { "image": "data:image/png;base64,...", "width": 1920, "height": 1080, "format": "png" } ``` ## ✅ Checklist de Validation ComplĂšte ### FonctionnalitĂ©s de Base - [ ] CrĂ©er un nouveau workflow - [ ] Ajouter des Ă©tapes - [ ] Connecter des Ă©tapes - [ ] Configurer des paramĂštres - [ ] Sauvegarder un workflow - [ ] ExĂ©cuter un workflow ### SĂ©lecteur de Cible - [ ] Ouvrir le mode interactif - [ ] Capturer l'Ă©cran - [ ] DĂ©tecter des Ă©lĂ©ments - [ ] SĂ©lectionner un Ă©lĂ©ment - [ ] GĂ©nĂ©rer des sĂ©lecteurs - [ ] Confirmer la sĂ©lection ### Gestion des Variables - [ ] CrĂ©er une variable - [ ] Utiliser une variable - [ ] Valider les rĂ©fĂ©rences ### Logique de ContrĂŽle - [ ] CrĂ©er une condition - [ ] CrĂ©er une boucle - [ ] Connecter les branches ### ExĂ©cution Temps RĂ©el - [ ] WebSocket connectĂ© - [ ] États mis Ă  jour - [ ] Animations affichĂ©es - [ ] RĂ©sumĂ© gĂ©nĂ©rĂ© ### Interface Utilisateur - [ ] Responsive - [ ] Intuitive - [ ] Feedback visuel - [ ] Notifications ## 🎉 Validation Finale Si tous les tests passent, l'application est **prĂȘte pour la dĂ©mo** ! ✅ --- **Besoin d'aide ?** - Consulter les logs : `backend.log` et `frontend.log` - VĂ©rifier la console du navigateur (F12) - Tester les endpoints API manuellement - Consulter la documentation : `TASK_10_INTEGRATION_COMPLETE.md`