インターフェイス テストでカバーしたい AJAX ベースの JavaScript アプリケーションがあります。たとえば、Web サイトを (特定の URL から) ロードし、いくつかの DOM 要素 (特定の ID と特定のクラス) が存在するかどうかを確認するテストを作成したいと考えています。
問題は、ブラウザに URL を入力すると、アプリケーションにLoading...
ラベルが表示され、その下に AJAX リクエストが送信されることです。AJAX 応答が到着すると、いくつかの処理が行われ、適切な Web ページ コンテンツが表示されます (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
すべてのアサーションを作成できるように、AJAX 応答が到着して JS エンジンによって処理されるまで、phantomjs/casperjs を待機させるにはどうすればよいか教えてください。