为什么casperjs会用无效的javascript代码静默地终止?

Why casperjs aborted silently with invalid javascript code?

本文关键字:静默 代码 终止 javascript casperjs 无效 为什么      更新时间:2023-09-26

我试过了:

[roxma@localhost test]$ cat invalid.js
"use strict";
var casper = require('casper').create({});
// missing ;
var aa
casper.run();
[roxma@localhost test]$ casperjs invalid.js
[roxma@localhost test]$

我不知道为什么卡斯珀默默地流产了。

casperjs --version
1.1.3
phantomjs -v
2.1.1

=====================

编辑

对不起,我错了。前面的例子不是错误。

下面的例子更接近我遇到的情况。

"use strict";
var casper = require('casper').create({});
casper.start('http://www.qq.com/');
casper.then(function() {
        this.echo('begin');
        var a;
        var b = {
                a: a['d']
        };
        this.echo('end');
});
casper.run();
[roxma@localhost test]$ casperjs  invalid.js
begin
[roxma@localhost test]$

您需要使用casper.on('error')回调,以便捕获错误,如下所示:

"use strict";
var casper = require('casper').create({
//    verbose: true,
//    logLevel: 'debug'
});
//casper.on('remote.message', function(msg) {this.echo('The error from evaluate: ' + msg, "ERROR");});
casper.on('error', function(msg) {
    this.echo('Error: ' + msg, "ERROR");
})
casper.start('http://www.qq.com/',function() {
        this.echo('begin');
        var a;
        var b = { a: a['d'] };
        this.echo('end');
});
casper.run();