Cypress中如何使用then()获取元素值并执行if-else条件判断
问题原因
你当前的写法存在两个核心问题:
$span.text()获取到的是字符串类型,你使用includes(0)是判断字符串中是否包含字符0,而不是做数值大小比较,完全不符合你的需求- 没有将文本内容转换为数值类型,无法直接进行大于/小于的数值判断
正确实现代码
cy.get(".badge.ml-1.badge-primary").then(($span) => { // 取文本去除前后空白,转成数值类型 const spanNum = Number($span.text().trim()) // 按需求做数值判断 if (spanNum > 0) { doFunction1() } else { cy.get('xxxxx') } })
注意事项
- 如果文本可能存在非数字的场景,可以加一层合法性判断,比如用
isNaN(spanNum)先校验是否为有效数字再走后续逻辑 - 所有涉及Cypress命令的操作都可以直接放在then回调内执行,Cypress会自动维护命令队列的执行顺序,不会出现异步顺序混乱的问题
内容的提问来源于stack exchange,提问作者OSW
相关产品推荐
相关产品推荐

