Cypress:代码进入无限循环,当满足条件时无法打破循环



当我开始第一个if条件工作良好,但当$initialVal.text()更改为失败或完成时,我的脚本进入无限循环。

使用以下代码:

let maxCount = 1000;
for(let i = 0; i< maxCount; i++){
cy.get('locator').each(($initialVal, index, list) => {
expect(index).to.be.greaterThan(-1);
if ($initialVal.text() == 'started')
cy.get("locator").type({'enter'});
else if ($initialVal.text() == 'failed')
cy.log("Status is " + $initialVal.text());
**//here I need to break the loop**
else {
cy.log("Status is " + $initialVal.text());
}
}

我期待一个解决方案,如果状态是启动,它应该执行的行动,如果它失败或其他东西,它应该执行不同的行动,然后打破循环。

由于异步执行,您无法停止Cypress命令中的for循环。但是您可以跳过迭代:

let stop = false;
let maxCount = 1000;
for (let i = 0; i < maxCount; i++) {
cy.then(() => {
if (!stop) {
cy.get('locator').each(($initialVal, index, list) => {
expect(index).to.be.greaterThan(-1);
if ($initialVal.text() == 'started')
cy.get('locator').type({ 'enter' });
else if ($initialVal.text() == 'failed') {
cy.log('Status is ' + $initialVal.text());
stop = true;
} else cy.log('Status is ' + $initialVal.text());
});
}
})
}

相关内容

  • 没有找到相关文章

最新更新