在我的c#selenium webdriver测试中,我偶尔会使用:
public void WaitForJQuery(TimeSpan timeout)
{
var wait = new WebDriverWait(driver, timeout);
wait.Until(d => (bool)(d as IJavaScriptExecutor).ExecuteScript("return jQuery.active == 0"));
}
等待jQuery调用的指定'timeout'结束。我想知道是否有可用于q.js库的等效文件?
我是测试人员,不是webdesigner,对q库的经验很少,浏览文档时我看不到任何可能包含我想要的信息的相关静态属性。
答案 0 :(得分:2)
不,Q会独立跟踪每个承诺,因此它维护的唯一记录是未处理的拒绝(出于错误报告的目的)但是构建一些东西并不会太难:
var pending = 0;
function register(operation) {
pending++
return Q(operation)
.finally(function() { pending--; });
}
如果您在每次创建承诺时致电register(promise)
,只需测试pending === 0
此register
方法还可用于检查挂起的jQuery promise(或具有有效then
方法的任何其他类型的promise),因为Q
将同化它们。