2016-07-31 36 views
1

我正在使用酶+摩卡+ chai的jsdom来测试React组件的行为。该组件有一个方法来聚焦一个DOM节点(使用通常的node.focus()),并且我想测试该节点实际上是在被调用时集中的。jsdom 9.1+在集中节点时未设置document.activeElement

要知道哪个节点的重点,我比较document.activeElement到我期望聚焦的节点。

但是,升级到jsdom 9.1+之后,即使在调用节点的focus()方法后,document.activeElement似乎始终为HTMLBodyElement

使用jsdom 9.0,测试运行良好。

我读了与焦点事件相关的jsdom 9.1+ contains some changes,但我无法理解document.activeElement的行为如何。任何帮助?

回答

2

难道你错过了你试图关注的元素的tabindex属性?必须将其设置为jsdom的有效整数才能将其解释为可聚焦。

你可以在jsdom source code看到这个。

+0

是的!谢谢! – gpbl