这是我的代码示例
<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 查询它