我想加载一个页面,然后以x秒的间隔多次评估它。这是我尝试过的两种方法: 首先使用JS setInterval:
casper.on('remote.message', function(msg) {
this.echo('remote message caught: ' + msg);
});
casper.thenEvaluate(function() {
window.x = 0;
var intervalID = setInterval(function() {
console.log("iter " + window.x);
<do some evaluation here>
if (++window.x === 5) {
window.clearInterval(intervalID);
}
}, 10000);
});
casper.each(list, function(self, i) {
self.wait(10000, function() {
last = i;
this.echo('Using this.wait ' + i);
});
});
casper.waitFor(function() {
return last === list[list.length - 1] && 5 === this.getGlobal('x');
}, function() {
this.echo('All done.').exit();
});
casper.run(function() {});
第二次使用CasperJS等待:
casper.start(link, function() {
for(i = 1; i < ITER; i++){
CurrentIter++;
this.wait(WAIT_TO, function() {
this.echo("I've waited for" + WAIT_TO + "ms.");
this.then(function() {
this.evaluate(<some evaluation>);
});
});
}
});
casper.run();
他们似乎应该做同样的工作,但我会得到不同的结果。任何人都能给我一些暗示吗?