2016-08-24 85 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. –