赛普拉斯,如何检查财产是否存在

时间:2020-07-03 09:26:24

标签: testing cypress

我是cypress的新手,正在尝试几种不同的方法来获取复选框属性...

checkBox().should('have.prop', 'checked')
checkBox().its('checked').should('exist')

第一行工作正常,但我希望第二行也能通过,但得到“预期存在未定义”响应。

谢谢

1 个答案:

答案 0 :(得分:0)

我认为,假设checkBox()函数返回 cy.get('。checkbox')

checkBox().its('checked').should('exist') 

失败,因为checkBox()不返回仅包含属性的对象。它返回整个元素(我认为是一个数组)。因此您不能直接在checkbox()上使用它(“已选中”)。

无论如何,要完成您希望做的事情,可以使用几种方法,

使用 invoke('attr','checked')

checkBox().invoke('attr', 'checked')
          .should('exist')

使用getAttribute js函数并期望chai断言

checkBox().then($el => {
    expect($el[0].getAttribute('checked')).to.exist;
    })

在js中使用属性,在cypress中使用(包装)。

注意:如前所述,您不能在cy.get()上直接使用它。您需要从对象中提取属性并使用cy.wrap()

checkBox().then($el => {
    cy.wrap($el[0].attributes)
      .its('checked')
      .should('exist')
      })

您可以使用任何一种方法,但是我建议您使用第一种方法。

欢呼。希望对您有所帮助。