首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >我如何知道哪些AJAX请求正在等待?

我如何知道哪些AJAX请求正在等待?
EN

Stack Overflow用户
提问于 2014-04-01 19:06:33
回答 1查看 313关注 0票数 1

我有一个简单的C#方法,在继续进行Selenium测试之前,它将等待完成所有jQuery WebDriver请求。

我想知道的是,当我达到最大等待量时,哪些请求正在等待。有办法做这样的事吗?我浏览了一下网络和jQuery文档,但什么也找不到。

代码语言:javascript
代码运行次数:0
运行
复制
    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);
        }
    }
EN

回答 1

Stack Overflow用户

发布于 2014-04-01 19:41:44

不,没有内置的方式来了解悬而未决的ajax请求。

你可以

  • 更改脚本以拦截请求并将完成情况通知代码(即使用ajaxTransport )
  • 捕获HTTP通信量,以了解所有未完成的请求何时完成。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22794734

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档