2013-11-25 89 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

相關問題