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

如何验证表格列数值在0.01-99999999.99?Cypress遇Infinity报错

Cypress验证表格列数值范围问题解决

问题描述

需要验证表格某列的230行数值是否全部满足大于0.01且小于99999999.99,尝试执行以下Cypress代码:

cy.get('#credits [align="right"]') .invoke('text') .then(parseFloat) .should('be.gte', 0.01)

但出现报错:expected 'Infinity' to be at least 0.01,询问是否需要通过循环处理。

问题原因

直接对多个匹配元素调用invoke('text')时,Cypress会将所有元素的文本内容拼接成一个字符串。例如列中数值为1.23、4.56时,拼接后得到1.234.56,用parseFloat解析这类非法格式的字符串会生成异常值(如Infinity),导致验证失败。

解决方案

必须遍历每个元素逐一验证,以下两种写法都能实现需求:

方法一:使用.each()循环处理

cy.get('#credits [align="right"]').each(($el) => {
  const value = parseFloat($el.text().trim())
  expect(value).to.be.gte(0.01).and.be.lte(99999999.99)
})

方法二:使用.should()回调批量验证

cy.get('#credits [align="right"]').should(($els) => {
  $els.each((index, el) => {
    const value = parseFloat(Cypress.$(el).text().trim())
    expect(value).to.be.within(0.01, 99999999.99)
  })
})

注意事项

  • 调用trim()去除文本前后空格,避免因空格导致的解析错误
  • 用within断言可同时验证数值的上下限,代码更简洁

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 14:22:10