我使用的是空手道框架版本1.3.1。下面是我的代码:
* def checkAction =
"""
function(){
try{
waitForEnabled(AddToAddress).click();
karate.log('Clicked add to address');
var urlMatched = waitForUrl('my-url');
karate.log('URL Matched:', urlMatched);
return urlMatched;
}
catch(e){
karate.log('Retrying due to error:', e)
return false;
}
}
"""
* retry(10,1000).waitUntil(checkAction)
但是,似乎发生了错误。 checkAction 函数仅执行一次,即使返回 false,也不会重试。在我的空手道日志文件中,行“单击添加到地址”...和“由于错误而重试:”仅记录一次,而不是 10 次。有人可以帮助我吗?
我尝试了一些其他方法,例如使用js命令而不是waitForUrl或waitForEnabled,但它们不起作用。
waitUntil()
函数必须返回null
而不是false
才能继续循环。这种设计是为了方便您的主脚本可以使用返回值,例如当您尝试获取表的行数等时
请参阅文档:https://github.com/karatelabs/karate/tree/master/karate-core#waituntilfunction
因此,如果您将
return false
更改为 return null
,我认为它应该开始工作。