Unten sehen Sie, dass browser.sleep ausgeführt werden soll, wenn der Client XYZ ist, aber immer noch nicht ausgeführt wird. Wenn ich eine console.log nach der browser.sleep-Anweisung einfüge, wird diese Anweisung ausgeführt (ich kann die Anweisung sehen), aber die browser.sleep wartet nicht wirklich, obwohl ich die Schlafzeit erhöhe.
Warum funktioniert browser.sleep nicht? Wie lasse ich es warten, wenn der Client XYZ ist?
if (testproperties.client == 'ABC'){
browser.ignoreSynchronization = false;
browser.waitForAngular();
browser.ignoreSynchronization = true;
}
else if (testproperties.client == 'XYZ'){
browser.sleep('35000');
};
@gamecheck80 entferne einfache Anführungszeichen im
// use like this
browser.sleep(35000);
Ganz schnell zur Klarstellung: browser.sleep gibt ein Versprechen zurück. Schau dir das genau an:
browser.sleep('35000') ist eine akzeptable Eingabe.
Da browser.sleep ein Promise zurückgibt, scheint es nur zu funktionieren, wenn Sie warten, bis das Promise beendet ist.
describe('browser', function() {
it('should sleep', function() {
browser.get('http://angularjs.org');
// does not work
// browser.sleep(10000);
// console.log('waited 10 seconds?');
// this does not work and "waited 10 seconds?" appears immediately after navigating
// after sleeping then print "waited 10 seconds"
browser.sleep(10000).then(function() {
console.log('waited 10 seconds');
});
});
});
Hoffentlich hilft das. Wenn Sie weitere Hilfe benötigen, stellen Sie Ihre Support-Fragen bitte auf StackOverflow , Google Group-Diskussionsliste oder Gitter . Weitere Informationen finden Sie unter https://github.com/angular/protractor/blob/master/CONTRIBUTING.md#questions
Dankeschön!
browser.sleep(10000).then(funktion() {
console.log('10 Sekunden gewartet');
});
Die Verwendung mit Angular 6 und Winkelmesser Version 5.4.1 funktioniert nicht, zumindest sehe ich das so
Hilfreichster Kommentar
@gamecheck80 entferne einfache Anführungszeichen im