不能用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);

……以上投掷(错误消息);这应该可以让你更好地指出出错的地方:)

编辑:在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),并可能有助于查明错误的来源.

祝好运!

相关文章
相关标签/搜索