【发布时间】:2015-06-22 17:20:45
【问题描述】:
到目前为止,在我用 CasperJS 编写的测试中,我一直在页面特定的元素上使用 waitForSelector() 来确定页面是否已完全加载(包括所有异步 ajax 请求)。我希望提出一种更标准的等待页面加载的方法,并想知道以下是否可行?
-
作为客户端脚本注入以下内容(include.js)
$(document).ajaxStop(function() { // Do something })
根据jquery api对ajaxStop的描述:注册一个处理程序,当所有Ajax请求都完成时调用。
定义一个 casper.waitForLoad 函数,该函数在调用时会等待上述代码块中的“某事”
在测试的几个部分使用该函数。
还有关于 // Do Something 部分的任何提示也将不胜感激 :) 我正在考虑在 phantomJS 中使用 window.callPhantom 功能,但我读到它在 casperjs 中不受官方支持。
【问题讨论】:
-
另外,是否可以在 phantom/casper 评估函数中等待回调以使用 jQuery 的 Deferred 对象解决?类似于: request = page.evaluate -> deferred = $.Deferred $.ajaxStop(deferred.resolve) return deferred.promise 如果语法不准确,请见谅
标签: javascript jquery ajax phantomjs casperjs