量角器浏览器等待布尔条件
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;
}
}
}
我正在尝试创建一个将执行脚本的等待条件,并且将根据 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;
}
}
}