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

如何在Cypress中测试react-date-picker组件,模拟选择指定出生日期的操作

Cypress 测试 react-date-picker 组件方案

你可以根据测试需求选择以下两种方案实现日期选择:

方案1:直接赋值(高效验证业务逻辑)

如果你的测试重点是表单校验、提交等业务逻辑,不需要验证第三方日期组件本身的交互功能,可以直接调用组件的onChange方法赋值,执行效率更高:

// JS中月份从0开始计数,2000年5月1日对应月份参数为4
const targetDob = new Date(2000, 4, 1)
// 定位DatePicker组件,触发onChange完成赋值
cy.get('.react-date-picker')
  .invoke('props', 'onChange')
  .call(targetDob)

// 可选:验证赋值结果符合预期
cy.get('.react-date-picker input').should('have.value', '2000-05-01')

方案2:模拟用户全流程点击操作

如果需要完全复现用户点击日历图标、选择日期的操作流程,可以按以下步骤实现:

// 1. 点击日历图标展开选择面板
cy.get('.react-date-picker__button').click()

// 2. 切换年份到2000
cy.get('.react-calendar__navigation__label').click()
cy.contains('.react-calendar__decade-view__years__year', '2000').click()

// 3. 切换月份到5月,组件显示英文的话把'五月'替换为'May'
cy.contains('.react-calendar__year-view__months__month', '五月').click()

// 4. 选择1号日期
cy.contains('.react-calendar__month-view__days__day', '1').click()

// 验证选择结果正确
cy.get('.react-date-picker input').should('have.value', '2000-05-01')

提示:如果项目自定义过组件类名,建议给<DatePicker>添加data-testid="dob-picker"属性,用cy.get('[data-testid="dob-picker"]')定位,稳定性更高,不会受样式修改影响。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 01:51:02