嘿伙计们:)我正在尝试在 cypress 中进行条件测试
cy.get("body").then(($body) => {
if ($body.find("element1").length > 0, {timeout: 10000}) {
cy.get("element1").should("be.visible")
} else {
cy.get("element2").should('be.visible').within(() => {
//do this and that
})
}
});
但这里的问题是,如果找不到 element1,测试将无法继续。我尝试了不同的方法,但没有一个有效。第一部分或第二部分都有效,但两者都不起作用。你能告诉我可能出了什么问题吗?提前非常感谢,多年来一直在努力解决这个问题,现在解决这个问题是一种荣誉:D
$body.find("element1").length > 0, {timeout: 10000}
的返回值是异步的,而不是布尔值,并且将计算为true,因此您将始终处于if条件中:
cy.get("element1").should("be.visible")
代码本质上是正确的,只是该表达式没有超时。
cy.get("body").then(($body) => {
if ($body.find("element1").length > 0) {
cy.get("element1").should("be.visible")
} else {
cy.get("element2").should('be.visible').within(() => {
})
}
})