Ich habe seit mehr als einem Monat mit/lernen Winkelmesser.Winkelmesser asnchronus Ausführung Ausgabe
Ich weiß, dass Winkelmesser Dokumentation sagt, wartet es für Winkel Anrufe zu beenden (http://www.protractortest.org/#/), wird es synchron usw. stellen Sie sicher, alle Schritte ausgeführt ..
Aber ich nicht finde es so. Oder zumindest finde ich es nicht so in meinen Skripten Manch ein Zeitmesser läuft voraus, zB wenn ich auf einen Link klicke, die aktuelle URL erhalte und dann die URL verifiziere.
In den meisten Fällen ist der URL-Wert veraltet, d. H. Er wurde nach dem Klicken auf den Link nicht ausgeführt. Unten ist mein Codebeispiel aus dem Seitenobjekt und dem entsprechenden Test.
Bitte schlagen Sie vor, wie Sie sicherstellen können, dass alle Testschritte in der seriellen Reihenfolge ausgeführt werden.
Page Object
this.getSPageLink(){
return element(by.xpath("//a[@title='S']"));
};
this.getLPageLink(){
return element(by.xpath("//a[@title='L']"));
};
this.goToSPage = function() {
(this.getSPageLink()).click();
*//ERROR here, sometimes second click (below) doesn't wait for first
click to complete, and complains that link for 2 click (below) is
not found*
(this.getSLPageLink()).click();
return browser.currentURL();
*//ERROR HERE url line (e) is sometimes executed before*
}
Test Class
it('::test SL page', function() {
pageObject.goToSpage();
var currentURL=browser.getCurrentURL();
expect(currentURL).toContain("SLink");
*//ERROR HERE value in this variable "currentURL" is most of the
times Stale*
});
it('::test SL2 page', function() {
pageObject.goToLpage();
var currentURL=browser.getCurrentURL();
expect(currentURL).toContain("Link");
console.log("this line is always executed first"));
//ERROR here , this print line is always executed first
});
Vielen Dank für die gute Erklärung. – sathya
Gibt es auch einen bevorzugten Weg, um sicherzustellen, dass alle Testlinien (IT-Block) seriell ausgeführt werden? Zum Beispiel wird console.log immer zuerst ausgeführt, nicht in der Reihenfolge, in der es vorhanden ist. – sathya
Es gibt tatsächlich kein 500-ms-Abfrageintervall in den Webdriverjs/Winkelmesserbindungen..http: //stackoverflow.com/a/34377095/771848. Vielen Dank. – alecxe