【发布时间】:2021-07-01 11:39:50
【问题描述】:
这是我的代码示例
<div class="dropdown" data-testid="dropdown">
<div class="option" data-testid="option">
<b>[AF]</b> Afghanistan
</div>
<div class="option" data-testid="option">
<b>[AL]</b> Albania
</div>
<div class="option" data-testid="option">
<b>[DZ]</b> Algeria
</div>
</div>
我需要做的是通过文本访问第一个元素来触发 userEvent.selectOptions
const dropdown = getByTestId('dropdown');
userEvent.selectOptions(dropdown, screen.getByText('[AF] Afghanistan'))
我得到的是:
TestingLibraryElementError:无法找到包含以下文本的元素: [AF] 阿富汗。这可能是因为文本被 多个元素。在这种情况下,您可以为您的 文本匹配器,使您的匹配器更加灵活。
这显然是因为我试图查询的文本被元素破坏了。
请注意,这不是一个选择/选项下拉菜单,它没有任何可访问的角色,所以我只能通过 screen.getByText 查询它
【问题讨论】:
标签: unit-testing jestjs testing-library