アプリケーションのテスト ツールとして casperjs を使用しています。ここで奇妙な問題に直面しています。
casper.then(function () {
this.click('a[href="/ui/thunder/"]')
})
casper.then(function () {
this.test.assertUrlMatch(/ui\/thunder\/$/, 'Redirected to cloud page');
console.log(this.getHTML());
});
このコードを書くと、ui/thunder ページにリダイレクトされ、コンソール ログ this.getHTML() にページの完全な html が表示されますが、一部の情報がまだ不足しています。
ページが読み込まれている間、いくつかの REST API 呼び出しが行われ、データが画面に読み込まれますが、casperjs はサーバーからのデータを表示しません。
例: ページが読み込まれると、REST サービス /auth/users が呼び出されます。これを<div class="user"></div>
タグに表示します。
ブラウザで見ると、このように埋められています
<div class = "user">
<div class "userName">User1</div>
<div class "userName">User2</div>
</div>
しかし、this.getHTML() の casperjs で console.log を実行すると、<div class="user"></div>
(ユーザーなしの空のタグ) が取得されます。
なぜこれが起こっているのですか?