如何用Cypress将下拉框预选值设置为当前值减1
Cypress实现日期下拉框选中预填充日期减1的方法
你需要将日期下拉框(DOM选择器为#ctl00_Main_EndDay)的选中值改为当前预填充日期减1,比如预填充是17号时选中16号,可按以下方式实现:
你的原有代码存在两处问题:一是下拉框的选择操作应该用select而非type(type仅适用于输入框);二是Cypress的异步特性导致你无法直接通过@Day引用完成数值计算。
正确的实现代码如下:
// 获取当前选中的日期值,计算目标日期后完成选择 cy.get('#ctl00_Main_EndDay') .invoke('val') // 获取下拉框当前选中的value值 .then(currentDay => { const targetDay = parseInt(currentDay, 10) - 1; // 转换为数字后减1 cy.get('#ctl00_Main_EndDay').select(targetDay.toString()); // 选中目标日期选项 });
代码说明:
invoke('val'):获取下拉框当前选中的value属性值,和invoke('value')效果一致,是Cypress更常用的写法then回调:由于Cypress命令是异步执行的,必须在回调内处理获取到的currentDay值,才能正确计算出目标日期select方法:下拉框的选择操作必须使用select,传入目标日期的字符串形式(部分下拉框支持数字参数,转字符串兼容性更强)
内容的提问来源于stack exchange,提问作者Andy
相关产品推荐
相关产品推荐

