Angularjs 业力测试用例:聚焦事件

Angularjs 业力测试用例:聚焦事件,angularjs,focus,karma-runner,Angularjs,Focus,Karma Runner,我正在使用karma测试用例测试angularjs中的焦点事件。但这一因素并没有得到关注。在我执行元素后立即执行。focus()并检查元素 如果我的注意力集中,我就错了。而document.activeElement在这一点上就是整个身体 请提出解决办法。谢谢(这个答案的灵感来源于) 您需要将元素添加到文档正文中,以便document.activeElement使用它 在调用元素.focus()之前,请执行以下操作: element.appendTo(document.body); 此外,如果

我正在使用karma测试用例测试angularjs中的焦点事件。但这一因素并没有得到关注。在我执行元素后立即执行。focus()并检查元素 如果我的注意力集中,我就错了。而document.activeElement在这一点上就是整个身体

请提出解决办法。谢谢

(这个答案的灵感来源于)

您需要将元素添加到文档正文中,以便document.activeElement使用它

在调用
元素.focus()之前,请执行以下操作:

element.appendTo(document.body);
此外,如果您在单元测试中执行此操作,我建议您在测试后删除该元素,否则每个测试都会向主体添加另一个元素(这可能会影响其他测试的结果)

这对我(大部分)起了作用。我没有使用JQuery,所以
element.appendTo
没有剪切它。我需要执行
document.body.appendChild(元素[0])
afterEach(function () {
    element.remove();
}