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

只是想知道是否有一种方法可以使用 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

     }

 });


波斯汪
浏览 428回答 2
2回答

慕的地10843

本质上,您有一组可能的错误消息,因此您可以测试该元素的文本是否存在于该数组中。expect(['text_A', 'text_B']).to.include(el.text())另一个读起来更好的选择是使用 .oneOfexpect(el.text()).to.be.oneOf(['text_A', 'text_B']);https://docs.cypress.io/guides/references/assertions.html#BDD-Assertions

杨__羊羊

我迟到了,但你可以满足: cy.get('.text-element').invoke('text').then(text => {      expect(text).to.satisfy((mText: string) => possibleMatchesArray.includes(mText)); });
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript