当我运行以下代码时,我得到以下内容:
TypeError:'undefined'不是函数(评估'this.emit('error',error)')
我早些时候问了这个,但是我改写了。似乎在casper函数中未定义JSON对象。如果我在外面做JSON.parse(),那么它不是未定义的。
关于如何使这项工作的想法?
var casper = require("casper").create({
verbose: true,
logLevel: 'debug',
});
var site = 'http://my.internalsite.com';
casper.start(site);
casper.run(function() {
var currentURL = this.getCurrentUrl();
this.echo('URL: ' + currentURL);
var json_string = JSON.parse(this.getPageContent());
this.echo(json_string);
this.exit();
});
答案 0 :(得分:4)
这可能是由this.exit()
JSON.parse(this.getPageContent())
引起的
您可以尝试以下方法:
var casper = require("casper").create({
verbose: true,
logLevel: 'debug',
});
var site = 'http://xkcd.com/info.0.json';
casper.start(site);
casper.then(function() {
var currentURL = this.getCurrentUrl();
this.echo('URL: ' + currentURL);
var json_string = JSON.parse(this.getPageContent());
require('utils').dump(json_string);
});
casper.run();