Files
rpa_vision_v3/scripts/test_simple_proprietes_12jan2026.js
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

129 lines
4.5 KiB
JavaScript
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/**
* Test Simple - Logique de Propriétés d'Étapes
* Auteur : Dom, Alice, Kiro - 12 janvier 2026
*
* Ce script teste la logique de base pour identifier le problème.
*/
// Configuration des paramètres (copie simplifiée)
const stepParametersConfig = {
click: [
{ name: 'target', label: 'Élément cible', type: 'visual', required: true },
{ name: 'clickType', label: 'Type de clic', type: 'select', defaultValue: 'left' },
],
type: [
{ name: 'target', label: 'Champ de saisie', type: 'visual', required: true },
{ name: 'text', label: 'Texte à saisir', type: 'text', required: true },
{ name: 'clearFirst', label: 'Vider le champ d\'abord', type: 'boolean', defaultValue: true },
],
wait: [
{ name: 'duration', label: 'Durée (secondes)', type: 'number', required: true, defaultValue: 1 },
],
condition: [
{ name: 'condition', label: 'Condition', type: 'text', required: true },
],
extract: [
{ name: 'target', label: 'Élément source', type: 'visual', required: true },
{ name: 'attribute', label: 'Attribut à extraire', type: 'select', defaultValue: 'text' },
],
scroll: [
{ name: 'direction', label: 'Direction', type: 'select', defaultValue: 'down' },
{ name: 'amount', label: 'Quantité (pixels)', type: 'number', defaultValue: 300 },
],
navigate: [
{ name: 'url', label: 'URL de destination', type: 'text', required: true },
],
screenshot: [
{ name: 'filename', label: 'Nom du fichier', type: 'text' },
],
};
// Fonction de test (copie de PropertiesPanel)
function getParameterConfig(selectedStep) {
console.log('🔍 getParameterConfig appelée avec:', selectedStep);
if (!selectedStep) {
console.log('❌ selectedStep est null/undefined');
return [];
}
console.log('🔍 selectedStep.type:', selectedStep.type);
console.log('🔍 Type de selectedStep.type:', typeof selectedStep.type);
console.log('🔍 Clés disponibles dans stepParametersConfig:', Object.keys(stepParametersConfig));
const config = stepParametersConfig[selectedStep.type];
console.log('🔍 Configuration trouvée:', config);
console.log('🔍 Longueur de la configuration:', config ? config.length : 0);
const result = config || [];
console.log('✅ Résultat final:', result);
return result;
}
// Tests
console.log('🚀 Début des tests de logique de propriétés d\'étapes');
console.log('=' .repeat(60));
const testSteps = [
{ id: 'test1', type: 'click', name: 'Test Click' },
{ id: 'test2', type: 'type', name: 'Test Type' },
{ id: 'test3', type: 'wait', name: 'Test Wait' },
{ id: 'test4', type: 'invalid', name: 'Test Invalid' },
{ id: 'test5', type: 'click_anchor', name: 'Test VWB Click' }, // Action VWB
];
testSteps.forEach((step, index) => {
console.log(`\n🧪 Test ${index + 1}: ${step.name} (type: "${step.type}")`);
const config = getParameterConfig(step);
console.log(`📊 Résultat: ${config.length} paramètres trouvés`);
if (config.length > 0) {
console.log('✅ SUCCÈS - Paramètres disponibles:');
config.forEach(param => {
console.log(` - ${param.name}: ${param.label} (${param.type})`);
});
} else {
console.log('❌ ÉCHEC - Aucun paramètre trouvé');
// Diagnostic
if (stepParametersConfig[step.type]) {
console.log('🚨 PROBLÈME: Configuration existe mais non retournée!');
} else {
console.log(' INFO: Aucune configuration pour ce type (normal pour les actions VWB)');
}
}
});
console.log('\n' + '=' .repeat(60));
console.log('📊 RÉSUMÉ DES TESTS');
console.log('=' .repeat(60));
// Résumé
const results = testSteps.map(step => ({
type: step.type,
configExists: !!stepParametersConfig[step.type],
paramCount: getParameterConfig(step).length,
}));
results.forEach(result => {
const status = result.paramCount > 0 ? '✅' : '❌';
console.log(`${status} ${result.type}: ${result.paramCount} paramètres (config existe: ${result.configExists})`);
});
const successCount = results.filter(r => r.paramCount > 0).length;
const totalCount = results.length;
console.log(`\n📈 Taux de succès: ${successCount}/${totalCount} (${((successCount/totalCount)*100).toFixed(1)}%)`);
if (successCount < totalCount) {
console.log('\n🔧 RECOMMANDATIONS:');
console.log('1. Vérifier que tous les types d\'étapes ont une configuration');
console.log('2. Vérifier la logique de détection des actions VWB');
console.log('3. Ajouter des logs dans le composant React pour déboguer en temps réel');
}
console.log('\n✅ Tests terminés');