Javascript PhantomJS未记录浏览器控制台中列出的所有错误

Javascript PhantomJS未记录浏览器控制台中列出的所有错误,javascript,error-handling,phantomjs,Javascript,Error Handling,Phantomjs,当我在浏览器控制台和PhantomJS上的错误输出之间来回切换时,我看到了两者之间的差异。特别是jquery.js未捕获的错误不会出现在我的PhantomJS console.log中 这是我的密码: var page = require('webpage').create(), system = require('system'), address page.onConsoleMessage = function(msg) { console.log("Caught on Cons

当我在浏览器控制台和PhantomJS上的错误输出之间来回切换时,我看到了两者之间的差异。特别是jquery.js未捕获的错误不会出现在我的PhantomJS console.log中

这是我的密码:

var page = require('webpage').create(),
  system = require('system'), address


page.onConsoleMessage = function(msg) {
  console.log("Caught on Console Message: " + msg);
};

page.onError = function(msg) {
 console.log("Caught on page.onError: " + msg);
};

phantom.onError = function(msg) {
 console.log("Caught on phantom.onError: " + msg);
 trace.forEach(function(item) {
    console.log(' ', item.file, ":", item.line);
 });
};

page.onResourceError = function(resourceError) {
  console.log('Unable to load resource (#' + resourceError.id + 'URL:' + resourceError.url + ')');
  console.log('Error code: ' + resourceError.errorCode + '. Description: ' + resourceError.errorString);
};

page.onAlert = function (msg) {
    console.log("Caught on Alert: " + msg);
};

if (system.args.length === 1) {
  console.log('Usage: someScript <some URL>');
  phantom.exit();
}

address = system.args[1];

try {
    page.open(address, function(status) {
        setTimeout(function() {
            console.log("I will exit now");
            phantom.exit();
        },10000);
    }); 
} catch (err) {
    console.log("Exception caught: " + err);
}
var page=require('webpage')。create(),
system=require('system'),地址
page.onConsolleMessage=函数(msg){
log(“在控制台消息中捕获:+msg”);
};
page.onError=函数(msg){
log(“在page.onError:+msg上捕获”);
};
phantom.onError=函数(msg){
log(“在phantom.onError:+msg上捕获”);
trace.forEach(函数(项){
console.log(“”,item.file,“:”,item.line);
});
};
page.onResourceError=函数(resourceError){
console.log('无法加载资源(#'+resourceError.id+'URL:'+resourceError.URL+'));
console.log('错误代码:'+resourceError.errorCode+'。说明:'+resourceError.errorString);
};
page.onAlert=函数(msg){
日志(“捕捉到警报:+msg”);
};
if(system.args.length==1){
log('Usage:someScript');
phantom.exit();
}
地址=system.args[1];
试一试{
第页打开(地址、功能(状态){
setTimeout(函数(){
log(“我现在就退出”);
phantom.exit();
},10000);
}); 
}捕捉(错误){
log(“捕获异常:+err”);
}

cnn.com在控制台中有大量的输出。我主要怀念未捕获的错误。

您已经添加了所有有用的事件处理程序。要么是PhantomJS2.x中的bug在起作用,要么是错误实际上并没有在PhantomJS中抛出。我认为没有办法区分这两种可能性。我开始这么想。我注意到我在所有浏览器中都没有遇到相同的致命错误,这使得你的评论非常可信。真的很遗憾。试着用PhantomJS 1.9.8运行它。您已经添加了所有有用的事件处理程序。要么是PhantomJS2.x中的bug在起作用,要么是错误实际上并没有在PhantomJS中抛出。我认为没有办法区分这两种可能性。我开始这么想。我注意到我在所有浏览器中都没有遇到相同的致命错误,这使得你的评论非常可信。真的很遗憾。试着用PhantomJS 1.9.8运行它。