我正在使用业力测试案例测试angularjs中的焦点事件。但要素没有得到集中。在我做 element.focus()之后,检查元素是否正确 我很专注,我很虚伪。此时 document.activeElement 就是整个身体。
请提出解决方案。感谢
答案 0 :(得分:7)
(此答案受Testing for focus an AngularJS directive启发)
您需要将元素添加到文档正文中,以便 document.activeElement 使用它。
在致电element.focus()
之前,请执行以下操作:
element.appendTo(document.body);
另外,如果您在单元测试中执行此操作,我建议您在测试后删除元素,否则每个测试都会向主体添加另一个元素(这可能会影响您的其他测试结果)。
afterEach(function () {
element.remove();
}