2014-11-06 1 views

답변

1

casper.thenEvaluate에서 아무것도 반환 할 수 없습니다. 그것은 무시됩니다. 너는 casper.thencasper.evaluate으로 나눌 필요가 있습니다. 유사한 내용은 this question을 참조하십시오.

casper.thenEvaluate은 다른 모든 then*wait* 기능과 마찬가지로 비동기 스텝 기능입니다. 비동기 함수에서 유용한 것을 반환하는 것은 불가능합니다. 내가 나중에 something를 사용하지 않은 경우에 당신이 요구되지 않을 것이다 의심

var something; 
casper.start(url).then(function(){ 
    something = this.evaluate(function(){ 
     return 'foobar'; 
    }); 
    this.click("someSelector"); 
}).then(function(){ 
    // do something with "something" on the new page 
}); 

: 당신이 가장 가능성이 원하는 것은 이것이다. 모든 단계 함수는 초기 casper 오브젝트를 리턴하므로 위의 예제와 같이 스크립트를 약속 구문으로 작성할 수 있습니다.