ich einen regulären (nicht JS) Anker-Tag haben, die auf eine externe Seite verbindet, sondern mit zusätzlichen Verhalten auf Klick auszuführen, die das DOMTest-ng-Klick-Handler auf Ankertag
<body ng-controller="MyController">
<a href="https://www.google.co.uk/" ng-click="inProgress = true">
{{ inProgress ? "Going to Google" : "Go to Google" }}
</a>
</body>
I ändert möchte dieses Verhalten in einem E2E-Winkelmessertest testen. Es sieht jedoch so aus, als ob nach dem Klicken auf die Verknüpfung nachfolgende Befehle im Kontext der externen Seite ausgeführt werden. Zum Beispiel geht der folgende Test:
browser.element(by.css('a')).click();
expect(browser.getCurrentUrl()).toBe('https://www.google.co.uk/');
aber der folgende Test nicht
browser.element(by.css('a')).click();
expect(browser.element(by.css('body')).getText()).toBe('Going to Google');
mit dem Scheitern zeigt den Inhalt der Google-Homepage als Text von body
.
Wie kann ich testen, was nach einem Klick auf ein nicht-Javascript a
Tag passiert?
Add _blank Ziel, wenn Sie Ihren Link wollen auf einem anderen Fenster zu öffnen, da sonst der Test korrekt ist zum Scheitern verurteilt, verschwinden Sie HTML, wenn Sie auf der @floribon Im Moment Link – floribon
klicken, I Ich möchte nicht, dass der Link in einem neuen Fenster geöffnet wird, aber ich möchte testen, dass der Benutzer sieht, dass sich der Text in dem Link ändert, nachdem er darauf geklickt hat. –
können Sie JQuery triggerHandler verwenden und dieses Szenario testen. 'browser.element ('a'). triggerHandler ('click')' –