react-testing-library - 如何使用反应测试库获取具有某些测试 ID 的父 div 的子 div?
问题描述
我想用一些 test-id 获取父元素中的 div 元素
我想做什么?
我有一个带有 test-id“parent-2”的父 div,它里面有一个 div 元素,其中包含文本 Remove。
我想检索这个 Remove div 元素。还有多个 Remove div 元素。像下面的东西
<div data-test-id="parent-1">
<div>Remove</div>
</div>
<div data-test-id="parent-2">
<div>Remove</div>
</div>
<div data-test-id="parent-3">
<div>Remove</div>
</div>
所以在上面的 html 代码中,我想点击 Remove div from div with parent test-id = "parent-2"
我试过像下面那样做
utils.fireEvent.click(getByText('Remove'));
这会引发错误,发现多个 Remove 实例。
我也试过这个 utils.fireEvent.click(getByTestId('parent-2').children[0];
这行得通。但这会访问父母的第一个孩子。但是希望对查询更具体。
那么我该如何解决这个问题,以便我可以单击删除 div 属于 test-id “parent-2”的 div
谢谢。
解决方案
react-testing-library 查询返回 DOM 节点,因此您可以在顶部使用 DOM API。你需要这样的东西:
utils.fireEvent.click(getByTestId('parent-1').querySelector('div'));
querySelector 采用 CSS 选择器,因此您可以给您的内部 div 一个类并且更具体:
utils.fireEvent.click(getByTestId('parent-1').querySelector('.myClass'));
看:
推荐阅读
- html - Bootstrap 4 - 将 div 垂直对齐到列的底部
- java - 如果互联网速度慢并且我不知道要下载的文件大小,如何设置 connectTimeout
- ajax - 在laravel中获取php标签作为前缀的Ajax响应
- javascript - 如何使用 HTML 文件制作 iframe
- ruby-on-rails - 日期时间格式 Rails
- flutter - 如何在flutter中实现语言支持的国际化,如英语、印地语和其他语言
- python - 使用 Python driver.current_url 语句获取 Selenium 自动化的完整 URL
- c# - 如何完全终止 EXCEL.exe 在 office.interop 中运行的任务?
- nginx - NGINX 错误地将请求转发到默认位置
- java - SonarLint 在 VSCode 上缺少 Java 规则