Я использую следующий код для загрузки некоторых данных JSON в переменную в моем скрипте casperJS:
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();
});
Это работает так, как я хочу - у меня есть объект journalJson, который мне нужен для обработки. Однако я не уверен, как продолжить тестирование. Другие функции, добавленные в casper.run(), не выполняются должным образом... например, если я изменю функцию запуска casper на:
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-адреса, но тест никогда не запускается.
Мой вопрос: как я могу получить доступ к JSON через get, а затем использовать его для выполнения тестов? Я думаю, что я что-то упускаю здесь...