2016-04-24 8 views
0

Ich möchte es erneut versuchen, wenn Nightwatch nicht auf ein Element klickt. Wie kann ich das machen?Wie wiederhole ich, wenn Element in Nightwatch nicht gefunden werden kann

Ich habe den folgenden Code:

this.browser.isVisible('.signUp', function (result) { 
      if (result.value && result.length) { 
       for(var i = 0; i < 3; i += 1) { 
        this.browser.click(this.element.login.signInBtn); 
        var check = this.browser.url(function(result) { 
         // on login page 
         console.log(result); 
         if (result.value.indexOf("#login") !== -1) { 
          return false; 
         } else { 
          return true; 
         } 
        }); 
        if (check) { 
         break; 
        } 
       } 
      } 
     }.bind(this)); 
+2

Können Sie erklären, warum Sie etwas wiederholen müssen? Im Allgemeinen, wenn Sie es erneut versuchen müssen, funktioniert etwas nicht wie erwartet und das sollte behoben werden, nicht der Test –

Antwort

0

Sie können Testfälle mit --retries Befehlszeilenoption wiederholen. Das Beispiel nightwatch --retries 2 wird den Testfall zwei weitere Male wiederholen.

Allerdings werde ich nicht empfehlen, dass Sie das verwenden. Ich würde zuerst andere Optionen untersuchen, um sicherzustellen, dass das Element angeklickt werden kann. Wie Beispiel wartet es mit waitForElementVisible

this.browser.waitForElementVisible(this.element.login.signInBtn, 1000);

0

-retries sichtbar wird n wird nicht ausgeführt vor und nach der Funktion, so wird dies nicht wie erwartet funktionieren. Sie sollten versuchen - suiteRetries n.