在 react-testing-library 中按 id 查找元素

新手上路,请多包涵

我正在使用 react-testing-libarary 来测试我的反应应用程序。出于某种原因,我需要能够通过 id 而不是 data-testid 找到元素。在文档中没有办法实现这一点。

有没有办法做到这一点?

我将渲染输出为:

 const dom = render(<App />);

我正在寻找符合以下条件的东西:

 const input = dom.getElemenById('firstinput');
//or
const input = dom.getById('firstinput');

原文由 aks 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.2k
2 个回答

我找到了一种方法来做到这一点。

 import App from './App';
import { render, queryByAttribute } from 'react-testing-library';

const getById = queryByAttribute.bind(null, 'id');

const dom = render(<App />);
const table = getById(dom.container, 'directory-table');

我希望这有帮助。

原文由 aks 发布,翻译遵循 CC BY-SA 4.0 许可协议

我觉得没有一个答案真正给出了完整的解决方案,所以这里是:

 const result = render(<SomeComponent />);
const someElement = result.container.querySelector('#some-id');

原文由 Liran H 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进