Ich habe gerade angefangen Winkelmesser für e2e Tests einer Angular Single-Page-Anwendung zu verwenden. Ich habe den Test mit Login-Seite gestartet. Dies ist der Test, den ich schrieb für scheitern FallWinkelmesser browser.getCurrentUrl() funktioniert nicht bei Änderung der Route
Tesr Fall 1
it('Login with wrong email', function() {
loginPage.get();
loginPage.setEmail('[email protected]');
loginPage.setPassword('12345678');
loginPage.submit()
expect(browser.getCurrentUrl()).toBe(loginPage.appUrl + '/#/login')
})
Der obige Code funktioniert perfekt. Ich teste den Login-Fehler mit der URL, wenn die URL nicht geändert wurde, als Fehler. Q1) Ist das der richtige Ansatz? sollte ich nach der Fehlermeldung suchen, habe ich ein Beispiel wie dieses gesehen, so dass Login fehlgeschlagen mit URL.
Test Case 2
Dies ist, wo ich den Fehler, Testfall bin immer die erfolgreiche Anmeldung zu überprüfen.
it('Login with correct email', function() {
loginPage.get();
loginPage.setEmail('[email protected]');
loginPage.setPassword('12345678');
loginPage.submit()
expect(browser.getCurrentUrl()).toBe(loginPage.appUrl + '/#/home')
})
Der obige Testfall funktioniert auch perfekt, wenn ich nicht browser.getCurrentUrl()
verwende ich die folgende Störung erhalte, wenn ich getCurrentUrl
verwenden, diese loginPage.submit()
ist ein erfolgreicher Anmeldeversuch und Umleitungen auf eine andere Strecke.
Ich habe dieses Problem gegoogled und viel Lösung gefunden und keiner von ihnen scheint zu funktionieren.
Lösungen erprobt
- Added
allScriptsTimeout
,getPageTimeout
Konfigurationsdatei Winkelmesser. defaultTimeoutInterval
hinzugefügt Datei SO Fragen folgenden- Gefunden issue, link1, link2 und diese Github zur Konfiguration versuchte, alle drei, und keiner scheint
- Als ich mit der
timeout
Fehlermeldung zu arbeiten googeln, fand ich diese SO link1 Fragen, link2, ich alle versucht, die nicht
Grundsätzlich alle Lösungen arbeitet, sagt wait
,zu verwenden, waitForAngular
. Ich habe alles in thenable
Mode versucht, da alle Renditen versprechen. Ich fand dieses Problem wegen der Verwendung von browser.getCurrentUrl
. Lassen Sie mich wissen, wo ich falsch liege und würde gerne über e2e Tests mit Winkelmesser wissen.
Ich würde gerne die Grundlagen des Winkelmessers wissen, wie es bei der Routenänderung funktioniert und wie eine asynchrone Benutzeraktion wie $http
vom Winkelmesser gehandhabt wird. Sollte ich explizit Versprechungen usw. verwenden.
Jede Hilfe wird sehr geschätzt.
Navigieren Sie zu einer nicht eckigen Seite? Wenn ja, benutze browser.ignoreSynchronization = true; und ändern Sie es dann zurück in false, wenn Sie zu der eckigen Seite zurückkehren. – KCaradonna
@KCaradonna Nein, es ist eine eckige Seite. Arbeiten an einer eckigen Anwendung für eine Seite – Wishnu
Versuchen Sie stattdessen, browser.driver.getCurrentUrl() zu verwenden und die Ergebnisse zu posten. – KCaradonna