何かを行うときに特定の要素にフォーカスを設定する必要がある angular.js アプリケーションがあります (つまり、ユーザーがエラーを修正できるように、無効なフォーム フィールドにフォーカスを設定します)。
angular-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();
});
特定の要素にフォーカスがある (ない) ことを期待するにはどうすればよいですか? 「:focus」セレクターは既に試しました
expect(element('input[id="..."]:focus').count()).toBe(1);
しかし成功しませんでした (特定の要素が表示されているかどうかをテストすることに触発されました)。
フォーカスを設定するには、入力フィールドにフォーカスを設定する方法のアイデアを使用しますか?
私はこれの単体テストも書いていて、DOM focus() 関数でスパイを使用することになりました (これは、私の知る限り、e2e テストでは不可能/望ましくありません)。