Winkelmesser browser.warten Sie nicht wirklich warten
Ich gehe davon aus, dass browser.warten sollte ein blockierender Aufruf, aber es funktioniert nicht so, wie ich es erwartet habe. Hier ist mein Beispiel:
describe("browser.wait", function() {
beforeEach(function() {
browser.wait(function() {
console.log('1 - BeforeEach WAIT');
return true;
});
console.log('2 - BeforeEach after wait');
});
afterEach(function() {
browser.wait(function() {
console.log('4 - afterEach WAIT');
return true;
});
console.log('5 - afterEach after wait');
});
it('should probably actually wait.', function() {
console.log('3 - IT statement');
expect(1).toBe(1);
});
Nun, weil ich davon ausgegangen-browser.warten war tatsächlich blockieren, ich dachte, dass meine Konsole.log-Aufrufe ausgeführt werden würden, um; 1,2,3,4,5;
Die aktuelle Ausgabe die ich bekomme, ist:
2 - BeforeEach after wait
1 - BeforeEach WAIT
3 - IT statement
5 - afterEach after wait
4 - afterEach WAIT
Wie bekomme ich browser.warten Sie eigentlich warten? Oder verwende ich die falsche Funktion komplett? Ich brauche die Dinge zu blockieren, bis mein browser bekommt, wo es braucht, um für den nächsten Anruf.
InformationsquelleAutor der Frage Justin | 2015-01-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist alles über verspricht (eigentlich jeden Winkelmesser Frage verspricht).
browser.wait()
nicht einen blockierenden Aufruf, es plant einen Befehl warten, bis eine Bedingung:Es würde nicht rufen Sie die Funktion, die Sie auf der Durchreise sind, werden sofort, es würde planen Sie einen Befehl und warten Sie Versprechen gelöst zu werden (wenn die Funktion im inneren gibt ein Versprechen).
Können Sie
then()
um eine richtige Reihenfolge, in diesem Fall:Finden Sie in der use-cases hier:
InformationsquelleAutor der Antwort alecxe
Wait-Funktion hält die Ausführung für die jeweilige Funktion, Aber JavaScript arbeiten im asynchronen Weise. Also irgendwann gibt es vielleicht die chance, Ihre Funktion wird ausgeführt, bevor die wait-Funktion.
Um es besser zu verstehen, die Sie Lesen müssen, Verspricht in Winkel/Winkelmesser.
Um Ihren code zu arbeiten, müssen Sie .dann(function(){}); (bat-Funktion 2 zu warten, bis 1. abgeschlossen.
InformationsquelleAutor der Antwort Yash Jagdale