2013-12-12 2 views
0

casperjs에서 특정 이벤트에 대한 시간 초과를 무시할 수있는 방법이 있습니까? onStepTimeout 기능이 있다는 것을 알고 있지만 모든 단계 제한 시간에 해당한다고 생각합니다. 새로 고침을하는 루프가 있으며 다른 단계와 비교하여 시간이 초과되는지 신경 쓰지 않아도됩니다. 수행중인 단계에 따라 시간 초과를 플래그하거나 무시하는 방법은 무엇입니까?CasperJS에서 대기 단계 제한 시간을 무시하십시오.

편집 : 여기 내 코드가 있습니다. 나는 그것이 전역 변수 플래그를 사용하여 작업하지만,이 경우 올바른 방법 모르는 가지고 :

//flag 
var tout="yes"; 

//onStepTimeout function 
    onStepTimeout: function(self,m) { 
    console.log('List Detection: Process step timed out.'); 
    if (tout == "yes") { 
     this.exit(); 
    } 
    }, 


//Event I dont want to skip if timeout 
tout="no"; 
casper.thenOpen('https://url/account/gotoLogin.action', function() { 
    //... 
}); 


//Event I do want to skip if timeout 
tout="yes"; 
casper.thenOpen('https://url/browse/browse.action', function() { 
    //... 
}); 
+0

현재 코드를 게시 할 수 있습니까? 문제의 스 니펫이거나 최소한의 예입니다. –

답변

0

당신은 확실히 글로벌 변수와 함께이 작업을 수행 할 수 있습니다,하지만 당신은 casper.then*에만 일정 단계 놓친 및 실행되지 않습니다 그들. 글로벌 변수를 적절한 시간에 뒤집을 수 있도록 단계 내에서 전역 변수를 이동해야합니다.

//flag 
var mayExit = true; 

function addMayExitStep(newMayExit){ 
    casper.then(function(){ 
     mayExit = newMayExit; 
    }); 
} 

//onStepTimeout function 
    onStepTimeout: function(self,m) { 
    console.log('List Detection: Process step timed out.'); 
    if (mayExit) { 
     this.exit(); 
    } 
    }, 

//Event I dont want to skip if timeout 
addMayExitStep(false); 
casper.thenOpen('https://url/account/gotoLogin.action', function() { 
    //... 
}); 


//Event I do want to skip if timeout 
addMayExitStep(true); 
casper.thenOpen('https://url/browse/browse.action', function() { 
    //... 
}); 
관련 문제