You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Cypress如何定位携带指定属性的number类型input输入框

Cypress定位该input元素的方案

先明确前提:该input属于MUI组件,class属性中的1102、1141是构建时自动生成的动态哈希值,会随版本更新变化,不能作为定位依据。下面是几种稳定的定位方式:

  • 基于现有稳定属性组合定位
    如果当前页面只有这一个符合条件的数字输入框,直接组合type、min等固定属性即可:
// 基础属性组合
cy.get('input[type="number"][min="1"]')
// 增加aria属性过滤,精度更高
cy.get('input[type="number"][min="1"][aria-invalid="false"]')
  • 结合父元素/关联元素定位
    如果页面存在多个相同属性的数字输入框,可以通过外层唯一的父容器、或者关联的label文本定位:
// 外层父容器有固定标识时的写法,此处.fixed-parent-class替换为实际的父容器固定class/id
cy.get('.fixed-parent-class').find('input[type="number"]')

// 有对应label文本时的写法,此处"采购数量"替换为实际的label文本
cy.contains('label', '采购数量').parent().find('input[type="number"]')
  • 官方推荐最优方案(可修改前端代码时使用)
    给该input添加测试专用的data-testid属性,前端代码修改为:
<input data-testid="goods-count-input" aria-invalid="false" type="number" min="1" class="MuiInputBase-input-1102 MuiInput-input-1141" value="1">

Cypress侧直接通过测试id定位,完全不受其他属性变更影响:

cy.get('[data-testid="goods-count-input"]')

内容的提问来源于stack exchange,提问作者Marcin Nowicki

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 04:30:04