gpt4 book ai didi

reactjs - 使用测试库 (React) 找不到按钮

转载 作者:行者123 更新时间:2023-12-04 01:11:02 64 4
gpt4 key购买 nike

我一定遗漏了一些很明显的东西,我有一个 react 应用程序,它有一个带有多个按钮的左 div,每个按钮都有不同的文本。我想检查这些按钮中的每一个是否都已呈现。例如,为了找到其中一个按钮(使用测试库),我正在执行以下操作:

screen.getByText("/channels/i", { selector: "button" })
我也试过
screen.getByRole("button", { name: /channels/i })
但我总是得到结果
TestingLibraryElementError: Unable to find an accessible element with the role "button" and name `/channels/i`

There are no accessible roles. But there might be some inaccessible roles. If you wish to access them, then set the `hidden` option to `true`. Learn more about this here: https://testing-library.com/docs/dom-testing-library/api-queries#byrole
但正如你所看到的,它确实存在
enter image description here
像那样,我可能还有另外 10 个按钮,所以我不明白为什么它说没有可访问的角色。
我做错了什么?

最佳答案

我看到的主要有两种可能性。

  • 不等待按钮出现。
    如果你的按钮是在某件事完成加载后呈现的,你需要等待它出现在屏幕上。你可以用 findBy 做到这一点询问。

  • await screen.findByRole('button' { name: 'Channels' });
  • 如果您的按钮以某种方式无法访问 - 例如被 css 隐藏 - 它不会被 getByRole 找到询问。您可以通过传递 hidden 来验证这一点。支柱。请注意,您可能不应该使用 hidden在大多数情况下...

  • screen.getByRole('button' { name: 'Channels', hidden: true });

    有用的链接
  • byRole
  • findBy
  • 关于reactjs - 使用测试库 (React) 找不到按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64844801/

    64 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com