量角器浏览器等待布尔条件

时间:2017-10-06 16:51:52

标签: webdriver protractor wait

我试图创建一个执行脚本的等待条件,并根据返回值确定是否需要等待。 我正在使用protractors executeScript功能和浏览器等待:

this.activeConnections = function(jsl) {   
console.log("Inside Active Connections");
switch (jsl) {
case checkEnum.jQuery:
console.log("Jquery Enum");
return browser.executeScript("return jQuery.active;").then(function(count) {
console.log("The count is "+count);
return count == 0;
});
default:
browser.logger.info("No asynchronous check performed.");
break;
}   
};

我原本期待等待条件等到Executed脚本评估为true但是没有工作

this.waitForActiveConnections = function () {
console.log("Inside Wait for Active Connections");
var condition = until.and(this.activeConnections(checkEnum.jQuery),false);
console.log("Whats this condition "+ condition);
return browser.wait(condition,30000);
};

1 个答案:

答案 0 :(得分:1)

主要问题是您的自定义预期条件需要返回一个可执行文件 - browser.wait()将持续执行的函数。类似的东西:

this.activeConnections = function(jsl) {   
    return function () {
        switch (jsl) {
            case checkEnum.jQuery:
                return browser.executeScript("return jQuery.active;").then(function(count) {
                    return count == 0;
             });
            default:
                browser.logger.info("No asynchronous check performed.");
                return true;
                break;
        }   
    }
}