CasperJS与JSON.parse

时间:2013-10-03 21:43:06

标签: casperjs

当我运行以下代码时,我得到以下内容:

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();            
});

1 个答案:

答案 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();