我正在使用以下代码将一些 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 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,然后使用它来执行测试?我想我在这里遗漏了一些东西......