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

Cypress测试中带%的文本执行greaterThan 0断言失败如何解决

问题原因
  • 提取到的24小时汇率文本为带%后缀的字符串类型,无法直接和数字0进行大小比较,字符串和数字的类型不匹配直接触发断言失败。
  • 部分汇率文本还带有正负号前缀,未做类型转换的情况下无法被断言方法正确识别为数值。
解决方案

首先对提取到的文本做预处理:去除末尾的%符号,再转换为数值类型后再做断言判断,修改后的代码如下:

describe('dropdown select', () => {
  it('open dropdown and check if 24hr rate is positive', () => {
    Cypress.on('uncaught:exception', (err, runnable) => {return false})
    cy.visit('link')
    cy.get('[data-cy=accept-btn]').click() 
    cy.get('#currency-select').should('be.visible').click() 
    cy.get('[class=" css-zkvt1b-menu"]').should('be.visible').contains('EUR').click()
    cy.get('[class="Yq Zq"]').each((el) => {
        const text = el.text().trim();
        // 移除%后缀后转换为数值类型
        const rateValue = parseFloat(text.replace('%', ''));
        expect(rateValue).to.be.greaterThan(0);
    })
  });
})
额外优化建议
  • 你当前使用的css-zkvt1b-menu、Yq Zq类名看起来是前端框架自动生成的动态哈希类名,后续前端代码迭代大概率会发生变化,建议让开发增加稳定的data-cy自定义属性来定位元素,提升用例的稳定性。
  • 可以增加非空校验逻辑,避免元素未加载完成、文本为空的场景下触发转换异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 20:24:04