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();
});
});
});