如何在赛普拉斯中使用逻辑或应该断言
How to use logical OR in Cypress should assertion
我有这个代码
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 运算符,以便断言元素的文本包含以大写或小写字母书写的搜索词?
一种实现您正在寻找的方法是在赛普拉斯中使用条件语句。我们将从元素中获取内部文本,然后检查文本中是否存在单词 hot 或 Hot ,并基于此我们将执行动作。
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/);
我有这个代码
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 运算符,以便断言元素的文本包含以大写或小写字母书写的搜索词?
一种实现您正在寻找的方法是在赛普拉斯中使用条件语句。我们将从元素中获取内部文本,然后检查文本中是否存在单词 hot 或 Hot ,并基于此我们将执行动作。
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/);