“typeError:'null'不是phantomjs中的对象(评估'a.nodeType')”

时间:2013-11-25 04:17:09

标签: javascript phantomjs

我的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')".

有没有人碰到过这个?有关如何修复的想法吗?

1 个答案:

答案 0 :(得分:2)

要做的第一件事:检查此错误的来源。

当我在PhantomJS中开始时,我不清楚的是,默认情况下,“errors”包含脚本编译/执行错误以及页面javascript错误。 特别是,你在onConsoleMessage上有一个回调,所以错误可能来自目标页面。

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

您已在webpage.onerror上向phantom.onerror添加处理程序。