can';带zombie.js的t exec javascript?

can';带zombie.js的t exec javascript?,javascript,node.js,zombie.js,Javascript,Node.js,Zombie.js,好的,我是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); } })

好的,我是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],
…………………………

我能做什么?

实际的错误消息隐藏在错误输出的一部分。在browser.visit功能中,添加

console.log(err.message);
…以上
抛出(错误消息)。这应该能让您更好地了解出了什么问题:)

编辑:在www.google.com上测试了节点0.4.1/zombie 0.9.1后,似乎是javascript错误(非法令牌)导致了问题。您可以通过如下方式设置僵尸代码来规避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
});
就我个人而言,我不认为当前的zombie错误输出非常有用,所以我更喜欢在出现问题时关闭它并显示一条简单的console.log消息

最后,您还可以通过向浏览器函数传递
debug:true
来调试错误:

browser = new zombie.Browser({ debug: true });
这将输出所有调用(包括ajax),可能有助于查明错误的来源

祝你好运