在空手道框架中使用重试和等待直到

问题描述 投票:0回答:1

我使用的是空手道框架版本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,但它们不起作用。

karate automation-testing
1个回答
0
投票

waitUntil()
函数必须返回
null
而不是
false
才能继续循环。这种设计是为了方便您的主脚本可以使用返回值,例如当您尝试获取表的行数等时

请参阅文档:https://github.com/karatelabs/karate/tree/master/karate-core#waituntilfunction

因此,如果您将

return false
更改为
return null
,我认为它应该开始工作。

© www.soinside.com 2019 - 2024. All rights reserved.