[英]Cypress conditional assertions
我有一張看起來像這樣的桌子
1 / 2
abc / abc
abc / bca
abc / cda
現在我的代碼看起來像這樣
cy.get('[role="row"]').each(($el) => {
cy.get($el).children()
.should('contain', 'abc')
})
但是如何檢查第二列是否包含 (abc, bca, cda) html 中的一個,但在中間它有像 aria-label = "abc" 這樣的東西 正則表達式是好的解決方案嗎? 我不擅長這個,你能告訴我它應該是什么樣子(開始時有很多屬性,中間是 aria-label = "abc" ,最后是一些屬性)? 或者有更好的解決方案嗎? 我不太了解 js,下面的代碼中可能有問題,因為第一個條件始終為真,不應該
cy.get($el).then(($try) => {
if ($try.html('aria-label' == "abc")) {
cy.log('it contains abc')}
else if ($try.html('aria-label' == "bca")) {
cy.log('it contains bca')}
else if ($try.html('aria-label' == "bca")) {
cy.log('it contains cda')}
else{
cy.log("DONT WORK")
}
})
}
$try.html().includes('xxx') 做到了。
這是假設,因為我不知道 html 的樣子。 一種方法是使用expect(2).to.be.oneOf([1,2,3])
。 我假設您正在驗證屬性aria-label
的值
cy.get('[role="row"]').each(($el) => {
expect($el.attr('aria-label').trim()).to.be.oneOf(['abc', 'bca', 'cda'])
})
如果您正在檢查元素的innerText,您可以使用:
cy.get('[role="row"]').each(($el) => {
expect($el.text().trim()).to.be.oneOf(['abc', 'bca', 'cda'])
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.