2012-05-17 1 views
1

Voici mon code javascript (dans Selenium IDE, avec des retours à la ligne et une indentation ajoutée pour plus de clarté): storeEval |Comment puis-je arrêter le cycle "POUR" après erreur

var input = window.document.getElementsByTagName('input'); 
for(var i = 0; i<input.length; i++) { 
    if(window.document.defaultView.getComputedStyle(input[i]).getPropertyValue('background-color') == 'rgb(204, 230, 255)') { 
     testResult='passed'; 
    } else { 
     testResult='failed'; 
    } 
} 

| testResult

Je dois vérifier la couleur de toutes les entrées. Mais Selenium Ide stocke le résultat du test uniquement à partir du dernier "INPUT". Je suis sûr qu'il y a des erreurs au milieu du test. Aidez-moi, s'il vous plaît. Désolé pour mon mauvais anglais

+1

si vous voulez dire que vous voulez arrêter le pour après 'échoué' que pause en écriture; commande ... – Onheiron

+0

J'ai essayé d'écrire breake: {testResult = 'failed'; break}}, mais mon testResult est toujours échoué, même quand toutes les couleurs sont correctes – user1211063

Répondre

1

Ce que vous devez modifier:

  • testResult est donné une valeur par défaut
  • un break est ajouté lorsque le test échoue pour arrêter la boucle for
  • distinguer s'il s'agit d'une radio, d'une case à cocher ou d'un autre type d'entrée

Voici votre code mis à jour:

var input = window.document.getElementsByTagName('input'); 
testResult = 'passed'; // <-- set a default value for 'testResult' 
for (var i = 0; i < input.length; i++) { 
    var bgColor = window.document.defaultView.getComputedStyle(input[i]).getPropertyValue('background-color'); 
    var inputType = input[i].type; 

    if (inputType === 'radio' || inputType === 'checkbox') { 
     if (bgColor !== 'rgb(r, g, b)') { // change the value to the desired one 
      testResult = 'failed'; 
      break; // <-- this is what you need to break the 'for' loop 
     } 
    } 
    else { 
     if (bgColor !== 'rgb(204, 230, 255)') { 
      testResult = 'failed'; 
      break; // <-- this is what you need to break the 'for' loop 
     } 
    } 
} 
+0

grand merci, mais cela ne fonctionne pas. Maintenant, mon testResult est toujours "échoué", même si toutes les couleurs sont correctes. Si ça aide, voici la page: svyatoslav.biz/testlab/megaform.php – user1211063

+0

oh! ça marche! Mais ... sur ma page j'ai 1 , donc mon test tombe. Sans cette entrée, le test fonctionne correctement. Peut-être que quelqu'un sait, comment puis-je résoudre ce problème? – user1211063

+0

P.S. mon script avec "{testResult = 'failed'; break;}}" fonctionne aussi) – user1211063

2
var input = window.document.getElementsByTagName('input'); 
var testResult = 'passed'; 
for(var i = 0; i<input.length; i++) { 
    if(window.document.defaultView.getComputedStyle(input[i]).getPropertyValue('background-color') != 'rgb(204, 230, 255)') { 
    testResult = 'failed'; 
    break; 
    } 
} 
+0

oh! ça marche! Mais ... sur ma page j'ai 1 , donc mon test tombe. Sans cette entrée, le test fonctionne correctement. Peut-être que quelqu'un sait, comment puis-je résoudre ce problème? – user1211063

Questions connexes