gpt4 book ai didi

javascript - While 循环元素状态 cypress

转载 作者:行者123 更新时间:2023-12-04 04:03:02 24 4
gpt4 key购买 nike

我有一个问题,我想点击一个按钮直到它消失,但次数可能会有所不同,所以我想检查可见性状态,当可见 = 真点击按钮时,当可见 = 假结束测试但问题是我不知道如何将所有的链从 get 元素循环到最后。它单击一次按钮并因中断而停止;如果我删除中断,它甚至不会永远单击它循环,主要问题是它第一次通过链时,该值是真的,但它不会重申

cy.get('[idElem]')
.then($isVisible => {
return $isVisible.is(':visible');
})
.then(value => {
while (value === true) {
cy.get('[idElem]').click();
break;
}
});

最佳答案

由于 cypress 的异步性质,您不能在 cypress 中使用 while/for 循环。在再次开始循环之前, Cypress 不会等待循环中的所有内容完成。但是,您可以改为执行递归函数,并在再次访问方法/函数之前等待一切完成。
所以你可以做这样的事情,它会起作用:

clickVisibleButton = () => {
cy.get( 'body' ).then( $mainContainer => {
const isVisible = $mainContainer.find( '#idOfElement' ).is( ':visible' );
if ( isVisible ) {
cy.get( '#idOfElement' ).click();
this.clickVisibleButton();
}
} );
}
然后显然调用 this.clickVisibleButton()在你的测试中。我正在使用 typescript ,并且此方法是在类中设置的,但您也可以将其作为常规函数来执行。

关于javascript - While 循环元素状态 cypress,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62793674/

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