我对像这样的元素取值有疑问:
<div class="Test">Number 10</div>
假设我有10-20个具有类似此处的值的类,那么我可以使用:
cy.get('.Test').invoke('text').as.('Field1')
以获得适当的值,但只有在使用this.Field1的其他测试中才有可能。 如何在同一测试中获得价值而不使用: 然后和.text()?
有可能吗?我有很多字段,我想通过一个测试来检查下一个视图中的正确值。
有人有类似的问题吗?谢谢
答案 0 :(得分:0)
听起来好像您可能想使用.its
cy.get('selector').its(propertyName).should('contain', 'string')
它需要与先前的命令(如get)链接在一起。您也可以按照赛普拉斯的示例在函数中使用它
Cypress显示了DOM元素的示例
获取DOM元素的length属性
cy
.get('ul li') // this yields us a jquery object
.its('length') // calls 'length' property returning that value
.should('be.gt', 2) // ensure the length is greater than 2
})
您可以访问函数,然后深入研究自己的属性 而不是调用它们。
// Your app code
// a basic Factory constructor
const Factory = (arg) => {
// ...
}
Factory.create = (arg) => {
return new Factory(arg)
}
// assign it to the window
window.Factory = Factory
cy
.window() // yields window object
.its('Factory') // yields Factory function
.invoke('create', 'arg') // now invoke properties on itv
您可以使用点表示法深入嵌套属性。
const user = {
contacts: {
work: {
name: 'Kamil'
}
}
}
cy.wrap(user).its('contacts.work.name').should('eq', 'Kamil') // true
有关示例和规则的完整列表,请查阅Cypress.io文档https://docs.cypress.io/api/commands/its.html#Syntax