Cypress代码if条件未执行求助:多条件判断被忽略
你的Cypress代码if条件不执行的原因及修复方案
核心问题及修复点:
语法错误导致回调未被正确解析
你的.each()回调函数写法存在语法错误,正确的箭头函数参数需要用括号包裹。原代码中each($el) => {的写法不符合JS语法规则,Cypress无法正确识别这段回调逻辑,导致if条件根本没有执行机会。应修改为each(($el) => {。类名包含多余空格导致匹配失败
$el.hasClass("flatpiker-day ")里的类名末尾多了一个空格,hasClass()方法会精确匹配类名,带空格的类名和DOM元素实际的类名不匹配,直接让这个条件始终为false。需要去掉空格,改为$el.hasClass("flatpiker-day")(另外注意:日历组件类名通常是flatpickr-day,你可以检查实际DOM的类名是否存在拼写错误)。文本匹配未处理空格问题
$el.text() == day的比较逻辑存在隐患,日历日期元素的文本往往带有前后空格(比如因内边距产生的空白),直接用==比较会出现不匹配的情况。建议用trim()去除前后空格,同时使用严格相等===提升代码严谨性,改为$el.text().trim() === day。
修复后的完整代码:
cy.get("locator").each(($el) => { if ($el.hasClass("flatpiker-day") && $el.text().trim() === day) { // some code return false; // 终止each循环 } });
内容的提问来源于stack exchange,提问作者Surya Singh
相关产品推荐
相关产品推荐

