如何在 Cypress 中触发 Material UI Select

2024-01-17

我正在尝试使用 Cypress 触发 MUI Select,但无法让它工作。

我已阅读 MUI SelectInput 源代码,很明显它们是在“mousedown”事件上触发的。我分析了一次点击,发现这是真的。然而,调用cy.find(input).trigger('mousedown', { force: true })不触发弹出窗口,也不触发cy.find('label').trigger('mousedown', { force: true }),也不抓取任何包含的div元素并在它们上触发 mousedown。

如果我进入 MUI 示例页面:https://material-ui.com/components/selects/ https://material-ui.com/components/selects/我检查那里的 DOM 并查看元素,它们都没有 onmousedown 处理程序,并将它们作为全局变量并调用temp<n>.dispatchEvent(new MouseEvent('mousedown'))不会触发弹出窗口打开。所以我无法弄清楚 mousedown 处理程序被挂接到哪里。

我缺少什么?

提前致谢。


让 Cypress 填写 Material-UI ReactSelect组件,这对我有用:

cy.get('#fooID')
  .parent()
  .click()
  .get('ul > li[data-value="FooBar"]')
  .click();

更换:

  • Foo使用您的 MUI Select 组件Id
  • FooBar以及您想要在下拉栏中选择的文本。

This post https://medium.com/@kevpkra/testing-material-ui-components-with-cypress-and-the-react-testing-library-349bedb12ccf帮助我指明了正确的方向。

在 Material-UI React 中Select组件表单标签的ID由外部 div 包裹/控制。 So .get('#fooID')通过ID抓取内部标签,.parent().click()点击根组件 div显示下拉菜单,并且.get('ul > li[data-value="FooBar"]').click()在下拉栏中找到并单击正确的项目。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Cypress 中触发 Material UI Select 的相关文章

随机推荐

  • 从分叉的上游原点拉取时忽略特定文件

    在 git 中 从上游源 即原始项目 拉取时如何免除某些文件 我正在开发一个项目 该项目最初是从一个非常活跃的存储库中分叉出来的 我已将原始版本添加为名为 upstream 的远程版本 以便可以运行 git pull upstream 并将
  • CouchDB 只写数据库

    我正在尝试设置一个可公开写入且只能由 管理员 角色读取的 CouchDB 数据库 我怎样才能做到这一点 有没有类似的validate doc update访问文档的函数 查看这一页 http wiki apache org couchdb
  • Silverlight Windows Phone 7:手势事件?

    我正在 Expression Blend 中模拟 wp7 应用程序 并寻找设置事件处理程序来响应某些手势 一些 Bing ing 显示一些人建议使用 点击时 或其他东西并检查自己点击之间的时间 但似乎应该有一种更简单的方法 Silverli
  • PHP 生成 RGB

    我面临着这种情况 我有一个来自数据库的 ID 因此它可以是 1 100 1000 并且我需要生成随机颜色 但是相同的 ID 应该会产生相同的颜色 关于如何实现这一目标有什么建议吗 Thanks 使用加密哈希并剪切不需要的字节 functio
  • Laravel Homestead - 在哪里运行 npm(虚拟机与 Windows 10 主机)

    我正在 Windows 10 主机上运行 Laravel Homestead Vagrant 盒子 目前 我正在编译资产 运行npm run dev 在虚拟机内 有时它非常慢 而且我通常会遇到符号链接 运行观察程序等问题 简而言之 需要更多
  • 你能用 css 设置 html 表单按钮的样式吗?

    我不喜欢默认的按钮样式 真的很无聊 我在用
  • 如何修复“python 版本始终返回 2.7 而不是 3.7”

    我下载了 Python 3 7 3 但 Python 2 7 10 已经存在 Now python version返回 2 7 10 我怎样才能解决这个问题 如果您在 Linux 上工作 您可以随时输入python3 version检查它是
  • 从 select 标签内 ng-change 中的选项获取 $index

    我发现有很多与此类似的问题 但我找不到任何完全需要我所拥有的问题 ngRepeat 在选项标签内 选择标签内的 ngChange 我需要获取所选选项的索引 这是我的代码
  • 如何快速发现复杂场景中某个点是否被遮挡?

    我有一个复杂的 3D 场景 需要根据 3D 坐标在其上显示 HTML 元素 我只是简单地覆盖了一个div标签放在顶部并使用 CSS 定位 但是 当 3D 坐标被模型遮挡时 或者以另一种方式表述 当它在相机中不可见时 时 我还需要部分隐藏它
  • 在具有空结果的 Linq to Sql 查询中获取默认值类型 (DateTime)

    我在返回默认值时遇到问题DateTime复合体的价值Linq to Sql query 希望下面的简化示例能够显示问题 尽管我还没有运行这个确切的代码 users Select u gt new MyDomainObject u Id u
  • Apache ActiveMq Artemis 客户端重新连接到集群 HA 复制/共享数据存储中的下一个可用代理

    Broker xml host1 和host2只是端口号更改为61616和slave作为配置 参考Apache Artemis 客户端故障转移发现 https stackoverflow com questions 62185183 apa
  • django 模板 - 解析字符串变量内的变量

    我正在将动态内容 从数据库 拉到模板中 您可以将其视为一些简单的 CMS 系统 内容字符串包含模板变量 就像这个 简化的情况 vars current city London vars content the current city is
  • DRY - 如何将重复的代码提取到...存储的函数中?

    这些语句的第三行完全相同 声明1 SELECT FROM uploads WHERE uid uid AND deleted lt gt 1 AND archived lt gt 1 声明2 SELECT FROM uploads WHER
  • 如何将交叉编译器与 Scons 一起使用?

    遵循建议关于斯康斯常见问题解答 http www scons org wiki FrequentlyAskedQuestions Why doesn 27t SCons find my compiler 2BAC8 linker 2BAC8
  • CORS 策略拒绝访问 Azure 托管的 API 应用程序

    我们是一个致力于 Azure Web 服务的团队 我们想要实现的是拥有一个 JavaScript 前端 它可以与 Azure 中托管的 Java API 应用程序进行通信 我们使用 Active Directory 进行身份验证 我们已经在
  • 计算系统.小数精度和小数位数

    假设我们有一个 System Decimal 数字 为了便于说明 我们以 ToString 表示如下 d ToString 123 4500 关于这个 Decimal 可以说如下 出于我们的目的 比例被定义为小数点右侧的位数 有效标度类似
  • 在 ASP.NET MVC 中使用简单查询

    我查了谷歌但没有发现什么好东西 我正在寻找使用传统SQL查询于MVC而不是实体框架等 所以如果你们给我提供一些例子那就太好了 我开始学习MVC但很多例子都使用linq to SQL and EF等等我根本不想使用 我想使用简单的旧的SQL模
  • C# 应用程序未修改注册表

    我有以下在 Windows 服务中运行的代码片段 该服务监视 LAN 并相应地更改代理设置 问题是由于某种原因代理设置没有更新 该应用程序正在本地系统帐户下运行 但注册表仍然不会更改 有人有主意吗 using var key Registr
  • 用于 C++ 的 MySQL 连接器 | setSchema 上的 MySQL_Connection::setReadOnly() 异常

    我正在为一款不太流行的 MMORPG 游戏编写服务器 EMU 软件 并且我正在使用 C 的 mysql 连接器来连接我的数据库 在我重新安装 Windows 以及我的整个开发环境 后 我遇到了一个奇怪的 mysql 连接器异常 我用来连接数
  • 如何在 Cypress 中触发 Material UI Select

    我正在尝试使用 Cypress 触发 MUI Select 但无法让它工作 我已阅读 MUI SelectInput 源代码 很明显它们是在 mousedown 事件上触发的 我分析了一次点击 发现这是真的 然而 调用cy find inp