javascript - 模拟 enzyme 中的焦点不会改变 document.activeElement

标签 javascript jestjs enzyme

我安装了组件,模拟焦点在按钮上,然后检查 document.activeElement 的结果,仍然是<body> 。我在这里缺少什么?

const app = mount(<Component />);

app.find("button").simulate('focus');

const focusedElement = document.activeElement; // result: <body>

最佳答案

看看https://github.com/airbnb/enzyme/issues/2173#issuecomment-505551552

simulate 在很多意义上都不是模拟:

  1. 事件没有冒泡
  2. 它对 document.activeElement 没有任何作用
  3. 模拟点击不会触发mouseDownblurfocus

你不能用 Jest/ enzyme 来测试这一点。 我想你可以用 Selenium 或类似的东西来测试它。

关于javascript - 模拟 enzyme 中的焦点不会改变 document.activeElement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56873145/

相关文章:

javascript - 如何从两个不同的 fs 方法创建对象?

reactjs - 在 useEffect Hook 中进行的异步调用的测试结果

javascript - 使用 Jest 和 enzyme 测试简单的 React 组件 - 我做错了什么?

javascript - 如何检查 Jest 中是否调用了静态方法?

javascript - 为什么 <image> 标签被 jquery 更改为 <img> 标签,在 chrome 中

javascript - getRelevantGoogleReviews 不是 WordPress 中的函数错误,但可以在 Localhost 中使用

javascript - 使用循环一次为一个项目设置动画

javascript - 预期数组但在 Jest 中收到数组

node.js - Jest 测试通过但最后出现错误 : connect ECONNREFUSED 127. 0.0.1:80

reactjs - 开 Jest , enzyme 测试同一子组件多次出现