Javascript HTML自定义属性未显示?
使用React应用程序,我目前正在为E2E测试(Testcafe)的HTML标记或React组件添加自定义属性 我不知道为什么在我查看页面时,额外的数据测试=“汉堡菜单btn”没有显示在任何元素中Javascript HTML自定义属性未显示?,javascript,html,reactjs,testing,testcafe,Javascript,Html,Reactjs,Testing,Testcafe,使用React应用程序,我目前正在为E2E测试(Testcafe)的HTML标记或React组件添加自定义属性 我不知道为什么在我查看页面时,额外的数据测试=“汉堡菜单btn”没有显示在任何元素中 import {slide as Menu} from 'react-burger-menu'; ... <Menu className="sidebar-menu" isOpen={menuOpen} data-test="burger-menu-btn&
import {slide as Menu} from 'react-burger-menu';
...
<Menu className="sidebar-menu" isOpen={menuOpen} data-test="burger-menu-btn">
<Nav.Link onClick={() => goTo("/dashboard")}>
...
</Menu>
从'react burger Menu'导入{slide as Menu};
...
转到(“/仪表板”)}>
...
它也适用于常规HTML标记,例如
<button className={"redirect-button"} data-test="return-dashboard-btn">Return</button>
返回
因此,testcafe无法找到带有等待选择器('[data test=“return dashboard btn”]'的按钮代码>
该应用程序通过webpack dev服务器或webpack捆绑包提供
我认为webpack不会删除任何HTML属性,也不知道它们为什么会消失。因此,在react burger菜单中的
组件中,没有您可以在其存储库中看到的自定义道具。尝试创建您自己的组件或使用通常,当您使用组件时,自定义属性可能不会出现,因为它们是道具,并且可能未在组件中使用。在您的例子中,
是组件,通常,您传递的属性是它的道具。您需要打开菜单,然后查看是否可以修改它。我不推荐它,因为它是您组件的一部分
据我所知,菜单不接受自定义属性。你需要自己制作一个可以定制道具的道具。最好的办法是,复制Menu.js并将其命名为MenuExtended,允许自定义道具作为组件的属性。它肯定应该与
元素一起工作,但
是一个组件,只要它不将任何附加道具转发给它呈现的实际DOM元素,它就会被忽略。谢谢@AdelmoMezzi。但是元素有什么问题吗?检查您是否还没有导入按钮组件。如果是react组件,则react很可能会在呈现DOM时去掉按钮的自定义属性。