Ich versuche zu überprüfen, dass das fokussierte Element beim Laden der Seite als einer meiner Tests festgelegt ist.Wie stelle ich fest, dass ein Element fokussiert ist?
Dies scheint zu funktionieren, und ich kann mit dem Element Explorer überprüfen, aber die Jasmine Matchers scheinen nicht auf diese zu nehmen.
Hier ist mein Code:
var LoginPage = function() {
this.basePath = browser.params.baseUrl;
this.loginPart = "/#/login";
this.usernameInput = element(by.model('username'));
this.get = function() { ... }
}
it('should focus on the username field on load', function() {
loginPage.get();
expect(loginPage.usernameInput).toBe(browser.driver.switchTo().activeElement());
});
Das Feld selbst wenn der Fokus immer richtig ist die Seite geladen wird (und Element-Explorer mich richtig ermöglicht dies über browser.driver.switchTo().activeElement()
abzufragen, so dass ich denke, dieser Test vorbei sein sollte, aber es . ist nicht
Stattdessen erhalte ich eine enorme Stacktrace, die keine nützlichen Informationen anbietet
Was mit geschieht 'erwarten (browser.driver.switchTo() active()) .toBe (loginPage.usernameInput) '? – ivarni
@ivarni - Ich bekomme 'Error: erwarten mit WebElement aufgerufen argument, erwartet ein Versprechen. Wolltest du .getText()? 'Anstelle des großen Stacktrace verwenden? – joshschreuder
OK, ich dachte, das Problem bestünde vielleicht darin, dass '.switchTo(). ActiveElement()' irgendeine Art von asynchronem Nebeneffekt hatte und der Fokus nicht wirklich geändert wurde, nachdem das Expect ausgewertet wurde, aber das war es nicht der Fall dann. – ivarni