React Testing Library返回多个元素时如何select特定元素?
How to select a specific element when returned multiple elements in React Testing Library?
所以我正在尝试 select 使用占位符的元素,如下所示:
fireEvent.focus(screen.getByPlaceholderText('DD/MM/YYYY'));
这给了我一个错误,说它找到了多个具有所述占位符的元素。下面是匹配的元素:
<input
class="StyledInput"
hasvalue=""
label="Date of birth"
placeholder="DD/MM/YYYY"
tabindex="0"
value=""
variant=""
/>
<input
class="StyledInput"
hasvalue=""
label="Expiry date"
placeholder="DD/MM/YYYY"
tabindex="0"
value=""
variant=""
/>
它返回给我两个元素,但我只想 select 第一个。我怎样才能得到那个特定的元素?
你应该使用getAllByPlaceholderText
方法,否则会报错:
TestingLibraryElementError: Found multiple elements with the placeholder text of: DD/MM/YYYY
const inputs = screen.getAllByPlaceholderText('DD/MM/YYYY')
的return值是一个元素列表,可以通过数组索引获取第一个输入元素-inputs[0]
所以我正在尝试 select 使用占位符的元素,如下所示:
fireEvent.focus(screen.getByPlaceholderText('DD/MM/YYYY'));
这给了我一个错误,说它找到了多个具有所述占位符的元素。下面是匹配的元素:
<input
class="StyledInput"
hasvalue=""
label="Date of birth"
placeholder="DD/MM/YYYY"
tabindex="0"
value=""
variant=""
/>
<input
class="StyledInput"
hasvalue=""
label="Expiry date"
placeholder="DD/MM/YYYY"
tabindex="0"
value=""
variant=""
/>
它返回给我两个元素,但我只想 select 第一个。我怎样才能得到那个特定的元素?
你应该使用getAllByPlaceholderText
方法,否则会报错:
TestingLibraryElementError: Found multiple elements with the placeholder text of: DD/MM/YYYY
const inputs = screen.getAllByPlaceholderText('DD/MM/YYYY')
的return值是一个元素列表,可以通过数组索引获取第一个输入元素-inputs[0]