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

如何在Cypress should断言中使用逻辑OR实现大小写不敏感校验?

解决Cypress忽略大小写的文本包含断言问题

其实你原来的代码逻辑有点小问题哦——search_word || search_word.toLowerCase()并不是在做“断言包含原词或小写词”的判断,而是JavaScript的逻辑或运算:只要search_word是真值,就只会用原词去匹配,所以当元素里的文本是小写的hot时,原词Hot自然匹配不上,就会报错啦。

给你两种靠谱的解决方法,都能实现忽略大小写的文本包含断言:

方法一:使用正则表达式(最简洁)

Cypress的contain.text断言支持接收正则表达式,加上i标志就能忽略大小写:

cy.get(element).should('contain.text', new RegExp(search_word, 'i'))

比如你的场景里,search_word是Hot,正则/Hot/i会匹配任何大小写组合的hot(不管是Hot、hot还是HOT),所以元素里的Ultimate hot就能成功匹配啦。

方法二:统一转成小写后比较(更直观)

如果你对正则不太熟悉,可以先把元素的文本转成小写,再和搜索词的小写版本对比:

cy.get(element)
  .invoke('text') // 获取元素的文本内容
  .then(text => text.toLowerCase()) // 转成小写
  .should('contain', search_word.toLowerCase()) // 断言包含小写后的搜索词

这种方法的逻辑很直白:把双方都转成同一大小写,就不用管原来的文本是大写还是小写了。

两种方法都能解决你的问题,选你觉得顺手的就行~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 10:57:33