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

Protractor browser wait for boolean Condition

我正在尝试创建一个将执行脚本的等待条件,并且将根据 return 值确定是否需要等待。 我正在使用量角器 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;
}   
};

我原以为等待条件会等到已执行脚本的计算结果为真,但这不起作用

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);
};

主要问题是您的自定义预期条件 需要 return 可执行文件 - 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;
        }   
    }
}