1
我有一個簡單的C#方法,在繼續使用我的Selenium WebDriver測試之前,等待所有jQuery AJAX請求完成。我如何知道哪些AJAX請求正在等待處理?
我想知道的究竟是哪些請求正在等待,當我達到最大等待時間。有沒有辦法做這樣的事情?我探討了網絡和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);
}
}
re。捕獲HTTP流量 - 如果我使用browsermob,我如何確保沒有未完成的請求? –