只是想知道是否有一种方法可以使用 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
杨__羊羊
TA贡献1943条经验 获得超7个赞
我迟到了,但你可以满足:
cy.get('.text-element').invoke('text').then(text => {
expect(text).to.satisfy((mText: string) => possibleMatchesArray.includes(mText));
});
添加回答
举报
0/150
提交
取消