我刚好在柏树上,遇到了一个问题。我需要检查收到的信件并单击。我立即收到信件的情况很简单,我检查该元素是否存在,然后对信件进行敲门。我用过这样的东西
**cy.get("body").then($body => {
if ($body.find("button[data-cy=appDrawerOpener]").length > 0) {
cy.get("button[data-cy=appDrawerOpener]")
.click();
}**
但是我不明白,例如,如果我在2分钟后收到这封信,该如何检查。我应该创造什么逻辑条件?
答案 0 :(得分:1)
只需添加2分钟的超时时间即可。元素出现后,测试即会成功,如果2分钟后仍未出现,则测试失败。
cy.get("button[data-cy=appDrawerOpener]", { timeout: 120000 }) // in ms
.click();
答案 1 :(得分:0)
您可以使用通过setTimeout
递归调用自身的函数,直到找到该元素为止。
function find(){
if ($body.find("button[data-cy=appDrawerOpener]").length > 0) {
cy.get("button[data-cy=appDrawerOpener]")
.click();
} else {
setTimeout(find, 500);//500 millisecond delay
}
}
find();