som*_*491 9 reactjs react-testing-library
我想访问带有“icon”类的第一个元素。
DOM 看起来是这样的:
<div class="parent">
<div data-testid="add">
<div class="info"></div>
<div class="action">
<div class="icon"/> // <== I want to access this
</div>
</div>
</div>
<div class="parent">
<div data-testid="add">
<div class="info"></div>
<div class="action">
<div class="icon"/>
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
如何获得第一个带有“icon”类的div?
我努力了:
const element = queryAllByTestId('add')[0].querySelector(
'div'
)[1];
Run Code Online (Sandbox Code Playgroud)
这使得元素未定义。
Dre*_*ese 10
getAllBy*查询返回查询的所有匹配节点的数组,如果没有元素匹配,则抛出错误。
queryAllBy*查询返回查询的所有匹配节点的数组,[]如果没有元素匹配,则返回空数组 ( )。
使用查询变体,以免在未找到匹配项时进行测试,并使用querySelectorAll,因为querySelector仅返回第一个匹配的元素,或 null。
const element = queryAllByTestId("add");
if (element.length) {
let divs = element[0].querySelectorAll("div");
// ...get the div node you need
}
Run Code Online (Sandbox Code Playgroud)
您甚至可以指定具有特定类的 div
const element = queryAllByTestId("add");
if (element.length) {
let divs = element[0].querySelectorAll("div.icon");
// ...get the div node you need
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
26815 次 |
| 最近记录: |