2014-03-18 3 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 참조)를 사용하여 페이지 컨텍스트를 전달해야합니다.

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

그리고 당신이 너무 여기에 브래킷을 잊었 : 당신은 그냥 링크의 텍스트를 인쇄 할 경우 , 당신의 casper.then의 것을 사용 this.echo (링크 [i]를 .innerText;

casperjs에서 반복 할 때 각 (IIFE)를 사용해야합니다. http://docs.casperjs.org/en/latest/modules/casper.html#each

관련 문제