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

如何在Cypress中选择输入框并输入数字?区分同标签输入框

解决Cypress选中Antd数字输入框及区分同标签输入框的问题

一、修复输入框无法选中及输入内容的问题

你的现有代码里用了.text(25),这是错误的——Cypress中给输入框输入内容需要用.type()方法,Antd的数字输入框可直接通过选择器定位后执行输入操作,无需额外点击(若点击触发状态有问题)。修正后的基础代码:

// 选中输入框并输入内容
cy.get('.ant-input-number-input').clear().type('25');
  • .clear()用于清空输入框原有内容(可选,按需添加)
  • .type()是Cypress给输入框赋值的正确方法,支持输入文本/数字

二、区分两个相同标签的输入框

针对结构完全一致的两个输入框,有以下几种可靠定位方式:

1. 使用索引定位

通过eq()方法指定索引(从0开始计数),直接选择对应位置的输入框:

// 选中第一个输入框并输入
cy.get('.ant-input-number-input').eq(0).clear().type('25');
// 选中第二个输入框并输入
cy.get('.ant-input-number-input').eq(1).clear().type('50');

2. 通过父容器定位

如果两个输入框所在的父元素有差异(比如不同的表单分组),可结合父元素选择器精准定位:
假设HTML结构如下:

<div class="input-group first-group">
  <input role="spinbutton" class="ant-input-number-input" ...>
</div>
<div class="input-group second-group">
  <input role="spinbutton" class="ant-input-number-input" ...>
</div>

则定位代码:

// 选中第一个输入框
cy.get('.first-group .ant-input-number-input').clear().type('25');
// 选中第二个输入框
cy.get('.second-group .ant-input-number-input').clear().type('50');

3. 添加测试ID(推荐)

若有权限修改前端代码,给每个输入框添加data-testid属性是最稳定的定位方式,不受页面结构变化影响:
修改后的HTML:

<input role="spinbutton" data-testid="first-number-input" class="ant-input-number-input" ...>
<input role="spinbutton" data-testid="second-number-input" class="ant-input-number-input" ...>

Cypress代码:

cy.get('[data-testid="first-number-input"]').clear().type('25');
cy.get('[data-testid="second-number-input"]').clear().type('50');

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 03:42:28