casperjs中有没有办法忽略特定事件的超时?我知道有一个onStepTimeout
函数,但我相信它适用于所有步骤超时。我有一个循环进行刷新,并不关心它是否超时与其他步骤。有没有根据它执行的步骤标记或忽略超时的方法?
编辑:这是我的代码段。我使用全局变量标志工作,但不知道这是否正确:
//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() {
//...
});