为了账号安全,请及时绑定邮箱和手机立即绑定

我们可以用 cypress 测试元素文本是否包含 text_ A 或 text_B 吗?

我们可以用 cypress 测试元素文本是否包含 text_ A 或 text_B 吗?

波斯汪 2021-11-12 18:16:09
只是想知道是否有一种方法可以使用 cypress测试元素是否包含text_A或text_B。例如,我有一个元素填充了从 API 请求返回的错误,我想检查错误消息是否包含text_A或text_B。尝试了以下代码,但它仅在存在text_A时有效,并且在返回text_B时失败。我没有收到任何来自 cypress 的无效语法错误,任何帮助将不胜感激。 cy.get('body').then((body) => {      if (body.find('#request-error').length > 0) {          cy.get('#request-error').then((el)=> {              assert.include(el.text(), ('text_A' || 'text_B'));          });     } else {         // DO SOMETHING ELSE     } });
查看完整描述

2 回答

?
慕的地10843

TA贡献1785条经验 获得超8个赞

本质上,您有一组可能的错误消息,因此您可以测试该元素的文本是否存在于该数组中。

expect(['text_A', 'text_B']).to.include(el.text())

另一个读起来更好的选择是使用 .oneOf

expect(el.text()).to.be.oneOf(['text_A', 'text_B']);

https://docs.cypress.io/guides/references/assertions.html#BDD-Assertions


查看完整回答
反对 回复 2021-11-12
?
杨__羊羊

TA贡献1943条经验 获得超7个赞

我迟到了,但你可以满足:


 cy.get('.text-element').invoke('text').then(text => {

      expect(text).to.satisfy((mText: string) => possibleMatchesArray.includes(mText));

 });


查看完整回答
反对 回复 2021-11-12
  • 2 回答
  • 0 关注
  • 426 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信