如何在react-testing-library中获取具有'name'属性的元素

IT技术 reactjs jestjs react-testing-library
2021-05-07 07:45:34

我正在使用 react 测试库和 jest 测试我的 react 应用程序。

我想知道如何在 react-testing-library 中获取具有“name”属性的元素。

例如,在下面的页面中,是否可以使用“userName”来获取该元素?

<input type="text" name="userName" />

或者我应该设置data-testId元素并使用getByTestId方法?

return (
  <div>
    <input type="text" name="userName" />
  </div>
)
2个回答

您可以使用返回的container. container是DOM节点并支持querySelector方法,它接受一个CSS选择找到的元素。此更详细答案中的方法相同

例如:

const { container } = render(<MyComponent />);
const inputEl = container.querySelector(`input[name="userName"]`);

您可能想使用getByRole

screen.getByRole('textbox', { name: 'userName' });