2015-06-24 61 views
1

我是新來casperjs,是沒有得到執行功能casperjs評價不執行

casper.start('https://piedmont.taleo.net/careersection/2/moresearch.ftl?lang=en',function(){ 

    casper.page.injectJs('/Users/manoj/apply_robots/jquery/jquery-2.1.4.min.js'); 
    this.echo(this.getTitle()); 

    this.wait(3000,processPage); 
    this.echo("before processPage"); 

    }); 

    function processPage() 
    { 

     this.echo("inside processPage"); 
     var c = []; 

     c = this.evaluate(getJ); 
     this.echo(c); 


    } 

    function getJ(){ 
     this.echo("inside getJ"); 
     var jobs = []; 
      var names = $('table#requisitionListInterface\\.listRequisition tr[id$=row]'); 
      __utils__.echo(names); 

      for (var i = 0, row; row = names[i]; i++) { 
       var $p = $.parseHTML(row.cells[1].innerHTML); 
      } 

      jobs.push(names); 
      return names.length; 


    } 
+0

的可能重複的[從調用時消息未出現評估方法](http://stackoverflow.com/questions/25135598/message-does-not-appear-when-called-from-評估方法) –

回答

1

大概

this.echo("inside getJ"); 

的評估你的情況,導致「這個」在評價功能問題不是casper對象,但可能是Window對象。 而且由於評估是在沙箱中執行的,所以不會拋出錯誤。

好運

+0

你知道如何調用casperjs點擊評估函數? – simplyblue

+1

casper.evaluate(函數(原因){ document.querySelector( '#ctl00_Main_ctl00_btnUpdate_IdentityNotes1_txtReasonNotes')值=原因; document.querySelector( '#ctl00_Main_ctl00_btnUpdate_sb')點擊();} ,config.reasonAutorize); –

+0

最後一點是錯誤的。你不能將'casper'對象傳入頁面上下文,因爲它不能被序列化。 –