使用browser.wait()重复并同步重试相同的操作/作业

时间:2015-03-20 07:04:30

标签: protractor

我在同步操作中遇到了很多困难,或者在量角器中一次又一次地重复同样的操作。我有一种方式似乎不是最好的方式,但仍然有效。  诀窍是利用browser.wait()

我已经实现了以下方案之一,其中计数器在执行某个操作后没有立即更新,并希望在操作之前和之后比较计数器值。要获得正确的更新值,需要多次刷新浏览器计数器在UI中更新。

2 个答案:

答案 0 :(得分:0)

以下功能重试5次以检查计数器是否在更新之前更新。

//  icount : initial counter value(already fetched)
//  fcount : final counter value
//  foo : function used to fetch counter value
//  val : Maximum # of retries

 this.retryVerification = function(icount,foo,val){
            var retry = 0;
            browser.wait(function(){
                browser.refresh();
                browser.sleep(1000);
                var fcount = foo();
                return fcount.then(function(fcount){
                    fcount = parseInt(fcount);
                    retry = retry + 1;
                    return (fcount == (icount+1) || retry == val);
                });
            });
        };

答案 1 :(得分:0)

您是否尝试过这样的waitForAngular

browser.waitForAngular();

您可以参考此API: Protractor API for waitForAngular