2014-03-18 91 views
0

我想運行一個基本的casperjs腳本,登錄到一個網站,然後顯示我的鏈接。但是我的輸出不會返回任何其他然後'Done'我的鏈接在哪裏?

這裏是我的代碼

var casper = require('casper').create(); 

casper.start('http://xxxxxx/Login.aspx', function(){ 
    //Login 
    this.fill('form#form1', { 
    'username': 'xxxxx', 
    'password': 'xxxxx' 
    }, true); 
}); 

casper.then(function(){ 
    var links = document.getElementsByTagName('a'); 
    for(var i = 0; i < links.length; ++i) { 
    //These should show something 
    this.echo(links[i].innerText; 
    this.echo(this.getHTML()); 
    } 
}); 
casper.run(function(){ 
    this.echo('done').exit(); 
    }); 

就像我說的,我回來的僅僅是「完成」。

回答

0

您在CasperJS上下文中使用getElementsByTagName,在此不能這樣做,您必須使用evaluate函數(請參閱evaluate,thenEvaluate)傳遞頁面上下文。 如果你只是想打印一個鏈接的文本,請使用您的casper.then:

this.echo(this.fetchText('a')); 

你忘了支架過於這裏:this.echo(鏈接[I] .innerText;

當您在casperjs中迭代時,應該使用每個(IIFE):http://docs.casperjs.org/en/latest/modules/casper.html#each

相關問題