【问题标题】:can't exec javascript with zombie.js?不能用zombie.js 执行javascript?
【发布时间】:2011-03-01 01:16:54
【问题描述】:

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

我能做什么?

【问题讨论】:

    标签: javascript node.js zombie.js


    【解决方案1】:

    实际的错误消息隐藏在错误输出的下方。在 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)并可能有助于查明错误的来源。

    祝你好运!

    【讨论】:

      猜你喜欢
      • 2016-05-22
      • 2015-02-10
      • 2014-05-24
      • 2017-01-27
      • 1970-01-01
      • 2017-10-22
      • 2013-10-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多