6

カルマ テスト ケースを使用して、angularjs でフォーカス イベントをテストしています。しかし、要素はフォーカスされていません。element.focus()を実行して、要素がフォーカスされているかどうかを確認した直後に、false になります。そしてその時点でのdocument.activeElementが全身です。

解決策を提案してください。ありがとう

4

1 に答える 1

8

(この回答は、AngularJS ディレクティブに焦点を当てるためのテストに触発されました)

document.activeElement で操作するには、要素をドキュメント本文に追加する必要があります

を呼び出す前に、次の操作element.focus()を行います。

element.appendTo(document.body);

また、単体テストでこれを行っている場合は、テスト後に要素を削除することをお勧めします。そうしないと、各テストで別の要素が本体に追加されます (他のテストの結果に影響を与える可能性があります)。

afterEach(function () {
    element.remove();
}
于 2013-12-31T23:18:49.893 に答える