gpt4 book ai didi

Cypress 条件按钮单击

转载 作者:行者123 更新时间:2023-12-03 08:14:56 27 4
gpt4 key购买 nike

我想在 cypress 中进行条件测试。情况是,我想实现这一目标:

如果页面上存在警报模式窗口,则单击"is"按钮,否则不执行任何操作。

警报的结构类似于:

<div class="swal2-container">
<h2>You are about to leave this page</h2>
<button type="button" class="swal2-confirm">Yes</button>
</div>

我试过这样:

cy.get('body').then((body) => {
if (body.find('button.swal2-confirm').length > 0) {
cy.get('button.swal2-confirm').contains('Yes').click();
}
});

但这什么也没做,它没有点击按钮。在测试运行程序中,我只看到输出 get ... body 并且它被跳过。

我也尝试用 $body 替换 body 但没有成功。

最佳答案

代码稍微多了一点,但是递归函数允许您无故障地退出(不执行任何操作的部分)。

您可能需要调整尝试次数和等待时间(200)。本质上,等待的时间越短,您可能需要的尝试就越多。

在 20 次尝试和 200 毫秒等待时,相当于 Cypress 命令上的 { timeout: 4000 }

function ifModal(attempt = 0) {

if (attempt > 20) return; // do nothing

if (Cypress.$('button.swal2-confirm').length > 0) {

cy.contains('button.swal2-confirm', 'Yes').click();
return; // done

} else {

cy.wait(200).then(() => {
ifModal(++attempt) // next attempt
})

}
});

ifModal();

关于Cypress 条件按钮单击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69720290/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com