Javascript 你如何使用“逻辑”;或;在柏树上应该有主张

Javascript 你如何使用“逻辑”;或;在柏树上应该有主张,javascript,mocha.js,cypress,assert,Javascript,Mocha.js,Cypress,Assert,我有这个密码 cy.get(element).should('contain.text', search_word || search_word.toLowerCase()) 我得到了这个错误 expected <div.games__element__title.card-title.h5> to contain text Hot, but the text was Ultimate hot 预期包含文本热,但文本最终热 如何使用OR运算符,以便断言元素的文本包含以大写或小写

我有这个密码

cy.get(element).should('contain.text', search_word || search_word.toLowerCase())
我得到了这个错误

expected <div.games__element__title.card-title.h5> to contain text Hot, but the text was Ultimate hot
预期包含文本热,但文本最终热

如何使用OR运算符,以便断言元素的文本包含以大写或小写字母书写的搜索词?

实现所需的一种方法是使用cypress中的条件语句。我们将从元素中获取内部文本,然后检查文本中是否存在单词hothot,并在此基础上执行操作

cy.get(element).invoke('text').then((text) => {
   if (text.includes('Hot')) {
      //Do Something
   }
   else if (text.includes('hot')) {
      //Do Something
   }
   else {
      //Do Something
   }
})

对于文本比较,我建议使用小写比较,而不是使用OR方法,在小写版本中比较预期文本和实际文本。这是一个更干净的方法

cy.get(element).invoke('text').should(text=>{
expect(text.toLowerCase()).to.contain(search_word.toLowerCase());
})
另一种选择是使用正则表达式

cy.get(element).invoke('text').should('match',/(h | h)ot/);

是的,这可以解决我的问题,但元素包含文本并不是事实。目标是断言元素包含文本。它可能不包含hot,但据我所知,元素将为您提供文本
Ultimate hot
,现在您要验证第二个单词是
hot
还是
hot
,还是其他什么?元素只能为我提供Ultimate或Ultimate hot或Ultimate hot。如果元素没有给我单词hot或hot,测试应该失败。