3
我有一個angular.js應用程序,它應該在執行某些操作時將焦點設置爲特定的元素(例如,將焦點設置爲無效的表單字段以讓用戶糾正錯誤)。角度e2e測試:如何檢查某個元素是否獲得了焦點?
我想要的角度,E2E測試中測試這種行爲:
it('should set the focus to the invalid field', function() {
input('email').enter('foo'); // this is not a valid email address
element(/* submit button */).click(); // try to submit the form
// How do I do this?
expect(element(/* email input element */)).toHaveTheFocus();
});
我怎麼能指望某個元素(不)具有焦點?我已經嘗試過了 ':聚焦' 選擇
expect(element('input[id="..."]:focus').count()).toBe(1);
,但沒有成功(由Testing whether certain elements are visible or not啓發)。
要將焦點設置,我用的How to set focus on input field?
我還編寫單元測試這一想法,並最終使用在DOM焦點()函數間諜(這是,據我所知, e2e測試不可能/不可能)。
我想測試時,同樣的問題把重點放在輸入上。嘗試在DOM中插入測試元素(但它沒有幫助我)。 –
我正在使用一個指令,在設置焦點時向DOM添加工具提示。所以我可以通過檢查工具提示是否正確來檢查焦點是否正確。 ()()()()()(){}()但至少工作 –
這看起來很有前景:http://stackoverflow.com/questions/5318415/which-browsers-support-document-activeelement也許有一種方法來添加一個新的匹配器,它使用一個元素和document.activeElement。 –