不能与zombie.js执行JavaScript?

好的,我是一个新的学习者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); 

…上面throw(err.message); 。 这应该给你一个更好的指示什么是错的:)

编辑:经过testing节点0.4.1 /僵尸0.9.1在www.google.com,它看起来像一个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 }); 

就我个人而言,我不觉得当前的僵尸错误输出非常有用,所以我更喜欢把它关掉,并显示一个简单的console.log消息,当出现错误。

最后,您还可以通过传递debug: true来debugging错误debug: true对浏览器function:

 browser = new zombie.Browser({ debug: true }); 

这将输出所有的调用(包括AJAX),并可能有助于查明错误的来源。

祝你好运!