我有一个简单的C#方法,在继续进行Selenium测试之前,它将等待完成所有jQuery WebDriver请求。
我想知道的是,当我达到最大等待量时,哪些请求正在等待。有办法做这样的事吗?我浏览了一下网络和jQuery文档,但什么也找不到。
public void WaitForAjax(IWebDriver driver)
{
const int ajaxSleepInMilliseconds = 250;
int counter = 0;
const int maxSleeps = 40;
while (counter < maxSleeps)
{
var javaScriptExecutor = driver as IJavaScriptExecutor;
var ajaxIsComplete = javaScriptExecutor != null &&
(bool) javaScriptExecutor.ExecuteScript("return jQuery.active == 0");
if (ajaxIsComplete)
{
break;
}
Thread.Sleep(ajaxSleepInMilliseconds);
counter += 1;
}
if (counter >= maxSleeps)
{
var currentAjaxCalls = ""; // ???
throw new WebDriverException("Maximum number of WaitForAjax Thread.Sleeps were hit. Waited for AJAX " +
"for: " + ((maxSleeps * ajaxSleepInMilliseconds) / 60) + " seconds; the calls in progress were: " +
currentAjaxCalls);
}
}
发布于 2014-04-01 11:41:44
https://stackoverflow.com/questions/22794734
复制