好的,我是node.js的新学习者: 当我尝试加载google.com,并在页面中执行脚本时,如下所示:
var zombie=require("zombie");
browser = new zombie.Browser({ debug: true })
browser.visit("http://www.google.com",function(err,_browser,status){
if(err){
throw(err.message);
}
})
但得到错误:
28 Feb 16:06:40 - The onerror handler
on target
{ frames: [ [Circular] ],
contentWindow: [Circular],
window: [Circular],
…………………………
我该怎么办?
答案 0 :(得分:7)
实际错误消息在错误输出的一部分中隐藏。在browser.visit函数中,添加...
console.log(err.message);
......高于throw(err.message);
。这应该可以让你更好地指出出现了什么问题:)
编辑:在www.google.com上测试了节点0.4.1 / zombie 0.9.1后,它看起来像是一个javascript错误(ILLEGAL TOKEN)导致问题。您可以通过设置僵尸代码来规避javascript错误:
browser = new zombie.Browser();
browser.runScripts = false; // this disables executing javascript
browser.visit("http://www.google.com/", function (err, browser) {
if (err) { console.log('Error:' + err.message); }
else { console.log('Page loaded successfully'); }
// ... rest of your code here
});
就个人而言,我没有发现当前的僵尸错误输出非常有用,所以我更喜欢关闭它并在出现问题时显示一个简单的console.log消息。
最后,您还可以通过将debug: true
传递给浏览器功能来调试错误:
browser = new zombie.Browser({ debug: true });
这将输出所有调用(包括ajax),并可能有助于查明错误的来源。
祝你好运!