2016-07-01 1 views
1

casperJS 시작 방법을 통해 임의의 페이지를 열려고하지만 일부 페이지가 제대로로드되고 일부 페이지가로드되지 않으므로이 시나리오에서는 casperjs를 종료하지 않습니다. 콘솔에서 멈추고 CTR + C를 사용하여 콘솔에서 수동으로 종료해야합니다.CasperJS : exit not working

casper.start("some url", function() { 

    if(this.status().currentHTTPStatus == 200) { 
     casper.echo("page is loading"); 
    } else { 
     casper.echo("page is in error "); 
     this.exit(); 
    } 

}); 
+1

당신이 전화를합니까'casper.run()'코드에서? – Sayakiss

+0

답장을 보내 주셔서 감사합니다. 아래에서 this.exit을 사용하고 있습니다. casper.run (function() {this.exit();}); 일부 페이지가 응답하지 않거나로드하는 데 오랜 시간이 걸리면 멈추는 경우가 있습니다. 강제로 종료해야합니다. – DJJ

+0

주어진 시간대에 페이지가로드되지 않으면 시간 초과를 설정하는 방법이 있습니까? – DJJ

답변

2

글로벌 stepTimeout 옵션을 사용하여 단계별로 마무리하십시오.

샘플 코드 :

var casper = require('casper').create({ 
    stepTimeout: 10000 //10s 
}) 

casper.start() 

casper.then(funtion(){ 
    casper.open(url) 
}) 

casper.run() 
+0

감사합니다.이 솔루션은 나를 위해 작동합니다. – DJJ

+0

@DJJ 환영합니다. 더 이상의 질문이 없다면, 내 대답을 받아 들일 수 있습니다 ... – Sayakiss

+0

done !!! 감사. – DJJ

0

다음 다음의 무시 bypass()을보십시오.

casper.start("some url", function() { 
    if(this.status().currentHTTPStatus == 200) { 
     casper.echo("page is loading"); 
    } else { 
     casper.echo("page is in error "); 
     this.bypass(2); // Will not execute the then functions. 
    } 
}).then(function() { 
    // The 1st then function. 
}).then(function() { 
    // The 2nd then function. 
}) 

casper.run(function() { 
    this.echo('Something'); 
    this.exit(); // <--- Here. 
}); 
+0

귀하의 회신에 감사하지만 아래 this.exit를 사용하고 있습니다. casper.run (function() { \t this.exit(); }}); 일부 페이지가 응답하지 않으면 강제로 종료하지 않습니다. – DJJ

+0

답을 편집했고 다른 해결책이 필요한지 알려주세요. – Anson

+0

주어진 시간대에 페이지가로드되지 않으면 시간 초과를 설정하는 방법이 있습니까? – DJJ