我有一个基于 AJAX 的 javascript 应用程序,我想用接口测试来介绍它。例如,我想编写一个测试来加载我的网站(从给定的 URL)并检查是否存在一些 DOM 元素(给定的 id 和给定的类)。
问题是当我在浏览器中输入 URL 时,我的应用程序Loading...
显示了一个标签,并且在下面发送了一个 AJAX 请求。当 AJAX 响应到达时,会进行一些处理并显示正确的网页内容(Loading...
标签隐藏)。到目前为止,我有这个代码:
casper.test.begin('Main page test', 2, function suite(test) {
casper.start('http://xxx.yyy.zzz/', function() {
test.assertTitle('My page name', 'page title is set correctly');
});
casper.then(function() {
test.assertExists('#tabsListArea', 'tabs area is found');
});
casper.run(function() {
test.done();
});
});
这是我收到的错误消息:
FAIL tabs area is found
# type: assertExists
# file: mypath/.../casperjs/casper-test.js:11
# code: test.assertExists('#tabsListArea', 'tabs area is found');
# subject: false
# selector: "#tabsListArea"
⚠ looks you did not use begin() which is mandatory since 1.1
有人可以指出我该怎么做才能让 phantomjs/casperjs 等到 AJAX 响应到达并由 JS 引擎处理,以便我可以做出所有断言?