カルマ テスト ケースを使用して、angularjs でフォーカス イベントをテストしています。しかし、要素はフォーカスされていません。element.focus()を実行して、要素がフォーカスされているかどうかを確認した直後に、false になります。そしてその時点でのdocument.activeElementが全身です。
解決策を提案してください。ありがとう
カルマ テスト ケースを使用して、angularjs でフォーカス イベントをテストしています。しかし、要素はフォーカスされていません。element.focus()を実行して、要素がフォーカスされているかどうかを確認した直後に、false になります。そしてその時点でのdocument.activeElementが全身です。
解決策を提案してください。ありがとう
(この回答は、AngularJS ディレクティブに焦点を当てるためのテストに触発されました)
document.activeElement で操作するには、要素をドキュメント本文に追加する必要があります。
を呼び出す前に、次の操作element.focus()
を行います。
element.appendTo(document.body);
また、単体テストでこれを行っている場合は、テスト後に要素を削除することをお勧めします。そうしないと、各テストで別の要素が本体に追加されます (他のテストの結果に影響を与える可能性があります)。
afterEach(function () {
element.remove();
}