Casperjs:如何以x秒的间隔评估页面?

时间:2015-04-05 16:55:09

标签: javascript phantomjs setinterval wait casperjs

我想加载一个页面,然后以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();

他们似乎应该做同样的工作,但我会得到不同的结果。任何人都能给我一些暗示吗?

0 个答案:

没有答案