在cypress.io中,如果没有元素,如何在不使测试失败的情况下计算出多个元素?

时间:2019-03-25 10:31:33

标签: javascript cypress

使用cypress.io可以获得与给定CSS选择器匹配的HTML元素列表,如下所示:

cypress.get(".some-class")

如果在页面上找不到具有class 'some-class'的元素,则测试失败。这是设计使然。

我想尝试获取上述HTML元素列表,但如果元素数量为0,则不会失败。

如何使用cypress.io实现此目标?

2 个答案:

答案 0 :(得分:1)

您可以按照以下方式进行操作。这样可以使测试保持活力。

describe('test check element', function () {
    it('testSelector reload', function () {
      cy.visit('https://docs.cypress.io/api/utilities/$.html#Usage')
      let found = false
      let count=0
      while (!found) {

        const nonExistent = Cypress.$('.fake-selector')

        if (!nonExistent.length) {
          cy.reload()
          found = false
          count=count+1
          cy.wait(1000)
          if(count==5)
          {
            found = true
            cy.log('Element not found after 5 seconds..Exit from loop!!!')
          }
        } else {
          found = true
        }
      }
    })
  })

答案 1 :(得分:0)

您可以使用length assertion

cypress.get('.some-class').should('not.have.length', 0);