小编sta*_*ser的帖子

如何使用反应测试库访问复选框类型和名称的输入元素?

我有这样的 HTML 代码:

<label class="switch" value="true">
    <input name="source" type="checkbox"/>
</label>
Run Code Online (Sandbox Code Playgroud)

如何访问带有名称的输入source?我尝试过使用getByRoleandname属性,但它会抛出一个错误,表明该输入有name="".

以下是尝试过的解决方案,不起作用:

screen.getByRole('checkbox', { name: 'source' });
Run Code Online (Sandbox Code Playgroud)

如何以其他方式访问此输入元素?

我尝试按照提供的解决方案这样做

const elem = document.querySelector(
    `input[name="source"]`);
if (elem) {
    userEvent.click(elem);
}
Run Code Online (Sandbox Code Playgroud)

这可行,但如果我像这样删除 if 语句

const elem = document.querySelector(
    `input[name="source"]`);
userEvent.click(elem);
Run Code Online (Sandbox Code Playgroud)

我收到错误:

null 类型的参数| 元素不可分配给“targetelement”类型的参数。null 类型不可分配给 targetelement 类型

reactjs react-testing-library

9
推荐指数
1
解决办法
2万
查看次数

标签 统计

react-testing-library ×1

reactjs ×1