javascript - 如何检测ajax驱动的网站

标签 javascript jquery ajax selenium-webdriver phantomjs

这里我想知道网页是否有AJAX调用。因为如果网页是基于AJAX的那么我会等待几秒钟才能获取网页内容,否则如果网页不是基于AJAX的那么我不会等待。

我按照下面的代码操作,但没有得到任何结果。

WebDriver driver = new PhantomJSDriver(caps);
driver.get("http://www.airgas.com/category/Safety-Products-Clothing-WorkClothing-Acc/_/N-0Z84v");

JavascriptExecutor js = (JavascriptExecutor)driver;
js.executeScript("$(document).ready(function() {
    $(document).ajaxStart(function(event, request, settings) {
        alert("Web Page have Ajax Calls");
    });
});
);

如果我使用开发人员控制台中 javascriptexecutor 中使用的 jQuery 代码,我会收到警告消息,指出网页是否有 AJAX 调用。 那么我的做法正确吗?如果不是,我的问题的正确解决方案是什么。

最佳答案

看起来您正在寻找这个答案: How do I know if jQuery has an Ajax request pending?

与此相反,您需要先给它一些时间来执行和启动请求,然后才检查是否有事件。 如果有任何事件,您可以等待完成。

HTH

关于javascript - 如何检测ajax驱动的网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30253304/

相关文章:

JavaScript 并行调用多个异步调用

java - 将json数据ajax传递给Spring boot

javascript - 使用 javascript 或 CSS 隐藏特定的 H2 id

php - Jeditable 不处理 id

javascript - 在ajax中将图像传递给数据对象

javascript - 需要连接d3中不同圆形打包布局的两个节点以及打包布局折叠/展开

javascript - 如何在 JSTree 上捕获 focusIn 和 focusOut 事件

javascript - 我正在尝试在 JS 中使用可选链接,但它显示错误

php - 如何使用ajax加载多个div mysql php检索数据

jquery - 使用 background-check.js 在 svg Sprite 背景位置之间淡入淡出