Javascript '的等效行为;jQuery.active';在q中
在我的c#selenium webdriver测试中,我偶尔不得不使用:Javascript '的等效行为;jQuery.active';在q中,javascript,selenium-webdriver,promise,q,Javascript,Selenium Webdriver,Promise,Q,在我的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")); } 这会一直等到指定的“超时
public void WaitForJQuery(TimeSpan timeout)
{
var wait = new WebDriverWait(driver, timeout);
wait.Until(d => (bool)(d as IJavaScriptExecutor).ExecuteScript("return jQuery.active == 0"));
}
这会一直等到指定的“超时”之后,jQuery调用才会完成。我想知道q.js库中是否有一个等价物可以使用
我是一名测试人员,不是网页设计师,对q库几乎没有什么经验,浏览q库的文档时,我看不到任何可能包含我想要的信息的相关静态属性。不,q独立跟踪每个承诺,所以它保存的唯一记录是未处理的拒绝(出于错误报告的目的)构建一些东西并不难:
var pending = 0;
function register(operation) {
pending++
return Q(operation)
.finally(function() { pending--; });
}
如果每次创建承诺时都调用register(promise)
,只需测试pending==0即可得到所需的结果
这个register
方法也可以用来检查挂起的jQuery承诺(或者任何其他类型的承诺,它有一个有效的then
方法),因为Q
会将它们同化。我在查看文档后怀疑是这样的。你对register函数的想法很好,谢谢!