我試圖驗證聚焦的元素是在頁面加載時設置爲我的測試之一。我如何聲明一個元素是專注於?
這似乎是工作,我可以驗證與元素瀏覽器,但茉莉花匹配器似乎並沒有拿起這一點。
這裏是我的代碼:
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());
});
場本身是正確獲得焦點,當頁面加載(和元素探險正確地讓我通過browser.driver.switchTo().activeElement()
查詢這一點,所以我覺得這個測試應該通過,但是它。是不是
相反,我得到它並沒有提供任何有用的信息,一個巨大的堆棧跟蹤
使用,會發生什麼'希望(browser.driver.switchTo()activeElement() ).toBe(loginPage.usernameInput)'? – ivarni
@ivarni - 我得到了'錯誤:希望用WebElement argment調用,期待一個Promise。你的意思是使用.getText()?而不是大堆棧跟蹤。 – joshschreuder
好吧,我在想也許問題是'.switchTo()。activeElement()'有某種異步副作用,並且在期望被評估之後焦點並沒有真正改變,直到那麼情況。 – ivarni