簡體   English   中英

賽普拉斯條件斷言

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM