CasperJs, wie man einen Schritt X-mal aufWaitTimeout wiederholt?

Ich möchte also eine casperJS-Funktion erstellen, mit der wir einen Schritt X-mal wiederholen können, indem wir die Seite zuerst aktualisieren, wenn diese Schrittfunktion das Timeout erreicht.

Für einen unzuverlässigen Test aufgrund eines bestimmten Seitenfehlers / Einfrierens im Moment und zur Reduzierung des Prozentsatzes von falschem Negativ.

Ich habe nur ein Problem. Ich weiß nicht, wie ich diese Schleife unterbrechen soll, da ich mich im IIFE-Bereich befinde. Siehe folgenden Code:

var echoTest = function(){
    casper.echo('Hi');
};
var trueFunction = function(){
    return true;
};

var verifyFailedTest = function(number, trueReturn, thenFunction){
    var i = 0;
    //outer:       <-------
    for (; i <= number; i++){   // <------ how to break this loop in my function then()
        //IIFE
        (function(index){
            if (index < number-1){
                //Execute 'number-1' times the then() step (reload the page each time) if timeout or until trueReturn returns true
                casper.then(function(){
                    casper.waitFor(function checkReturnTrue(){
                            return trueReturn();
                        }
                        , function then() {
                            thenFunction();
                            //break outer; break; return false;    <------ here where I want to break the loop
                        }
                        , function timeout() { 
                            casper.reload();
                        });
                });
            }
            //last execution, will return the normal error if it fails each time
            else if (index === number){
                casper.then(function(){
                    casper.waitFor(function checkReturnTrue(){
                            return trueReturn();
                        }
                        , function then() {
                            console.log('else');
                            thenFunction();
                        });
                });
            }
            else{console.log('verifyFailedTest() bug');}
        })(i);
    }
};

Ich habe es mit label versucht, aber ich habe einen Syntaxfehler bekommen.

Ausführung :

casper.test.begin('\n*************** Suite of planned test : scenario 1 **************\n', 1, function suite(test) {
    casper.start('https://www.google.fr/', function() {
        verifyFailedTest(3, trueFunction, echoTest);
    });

    casper.run(function() {
        test.done();
    });
});

});

Antworten auf die Frage(2)

Ihre Antwort auf die Frage