次のコードを使用して、casperJS スクリプトの変数に JSON データをロードしています。
var casper = require("casper").create({
verbose: true,
logLevel: 'debug',
pageSettings: {
userName: 'dev',
password: 'devpass',
}
});
var baseUrl = 'http://mysite.com/';
casper.start().then(function() {
this.open(baseUrl + 'JSON-stuff', {
method: 'get',
headers: {
'Accept': 'application/json'
}
});
});
casper.run(function() {
var journalJson = JSON.parse(this.getPageContent());
require('utils').dump(journalJson); //this returns my json stuff as expected
this.exit();
});
これは私が望むように機能します。処理を行うために必要なジャーナルJsonオブジェクトがあります。ただし、テストを続行する方法がわかりません。casper.run() に追加された他の関数が期待どおりに実行されません...たとえば、casper run 関数を次のように変更した場合:
casper.run(function() {
var journalJson = JSON.parse(this.getPageContent());
require('utils').dump(journalJson);
this.open(baseUrl).then(function () {
this.assertExists('#header');
});
this.exit();
});
次に、phantomjs は URL が要求されたことをログに記録しますが、テストは実行されません。
私の質問: get 経由で JSON にアクセスし、それを使用してテストを実行するにはどうすればよいですか? ここで何かが欠けていると思います...