[英]Cypress cy.get returns HTML object, but if I add .then(elem) to the cy.get function elem is an empty HTML object
这是我的测试:
it('tests', () => {
cy.log(cy.get('body'))
cy.get('body').then((body) => {
cy.log(body)
})
})
和输出:
1 get body
2 log Object{5}
3 get body
4 log {}
所以cy.get('body')
返回一个带有 5 个子元素的 html 元素,但是当我将 .then .then(body)
添加到 cy.get 时, body
是空的。 我希望能够将主体保存为变量并继续在主体变量上使用 .find jQuery 函数。 有谁知道这里可能发生什么?
更新
我真正想做的是添加一个条件。 因此,如果找到一个元素,则执行某些操作,否则执行其他操作。 以上似乎是一个障碍。 所以像:
cy.get('body').then((body) => {
if (cy.wrap(body).find('.dashboard')) {
cy.log('found')
} else {
cy.log('not found')
}
})
但在这种情况下,我收到此错误:
cy.find() failed because it requires a DOM element.
The subject received was:
> {}
The previous command that ran was:
> cy.wrap()
All 2 subject validations failed on this subject.
如果你想使用find()
你可以直接在then()
里面使用它 -
cy.get('body', {timeout: 6000}).then(($body) => {
if ($body.find('.dashboard').length > 0) {
cy.log('found')
} else {
cy.log('not found')
}
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.