2013-11-25 58 views
1

我在phantomjs脚本如下代码:“类型错误:‘空’是不是(评估‘a.nodeType’)的对象”,在phantomjs

var page = new WebPage(), testindex = 0, loadInProgress = false; 


    page.onConsoleMessage = function(msg) { 
     console.log(msg); 
    }; 

    page.onLoadStarted = function() { 
     loadInProgress = true; 
     console.log("load started"); 
    }; 

    page.onLoadFinished = function() { 
     loadInProgress = false; 
     console.log("load finished"); 
    }; 



    var steps = [ 

    function() { 

     console.log("Load Login Page"); 
     //spoof user-agent 
     page.settings.userAgent = "'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0';"; 
     page.open("https://login.XXX.com"); 

     }, 

最初,这似乎是工作。现在,我收到以下错误,登录不工作:

"TypeError: 'null' is not an object (evaluating 'a.nodeType')". 

有没有人碰到这个?任何想法如何解决它?

回答

2

首先要做的事:检查这个错误的来源。

当我开始使用PhantomJS时,一些不清楚的地方是,默认情况下,“错误”包含脚本编译/执行错误以及页面JavaScript错误。 尤其是,你在onConsoleMessage上有一个回调,所以也许错误来自目标页面。

基本上,当出现未处理的错误时,PhantomJS进入无效状态并停止执行。

您在phantom.onerror上添加了一个处理程序webpage.onerror

+0

谢谢Cyber​​maxs,这是非常有用的信息。我一直试图主要通过试错来进行调试。 – user61629

相关问题