2016-08-24 86 views
0

为什么CasperJS不显示JS错误?我有一个代码:CasperJS错误 - 他们在哪里?

var casper = require('casper').create(); 
casper.start('http://casperjs.org/'); 
casper.then(function() { 
    this.echo('First Page: ' + this.getTitle()); 
}); 
var a=null; 
console.log(a.b.c); 
casper.run(); 

casperjs sample.js运行它,但看不出有任何的警告有关a.b.c,它只是停止执行,就是这样。是否有可能看到我的脚本在任何地方产生的错误?

+0

'var a = null'没有任何意义,也许'var a = {b:9}'或类似的东西 – Joe

回答

0

PhantomJS 2.x引入了一个错误,它可以防止打印某些错误。以下是一些相关的GitHub问题:#12973#13741#14399。该错误仍然存​​在于当前可用的版本2.1.1中,但有一个补丁可用(请参阅我链接到的第一期的末尾的commit)。

由于CasperJS建立在PhantomJS的基础之上,因此它具有相同的限制。


PhantomJS和CasperJS默认不显示的错误,所以你必须注册到resource.errorpage.errorremote.messagecasper.page.onResourceTimeout事件(Example),看多。

+0

不,它不适用于我。如果我把它们放在函数内部,它会抛出错误,但不在外面,就像我的例子。 – shal

+0

正如我所说。这是一个PhantomJS错误。除了我自己修补的PhantomJS以及我连接的补丁之外,没有什么可以做的。或者你可以降级到PhantomJS 1.x. –