Casperjs随机延迟

时间:2014-10-04 12:46:26

标签: javascript web-crawler phantomjs casperjs

我使用casperjs,我想在rantom时间间隔内移动到站点。 我制作了这样的代码,但它没有用:

function getRandomIntFromRange(min, max) {
  return Math.round(Math.random() * (max - min)) + min;
}


var casper = require('casper').create();
casper.start('http://stackoverflow.com/');

casper.on('remote.message', function(msg) {
  this.echo('remote message caught: ' + msg);
});

casper.then(function() { 
  for (i=0; i<=5; i++) { 
    delay = getRandomIntFromRange(1000, 5000);
    this.wait(delay, (
      function(j) { 
        return function() { 
          this.echo('Test ' + j + '; delay: ' + delay); 
        }; 
    })(i)); 
  } 
}); 

casper.run();

输出是这样的:

测试0;延迟:1320

测试1;延迟:1320

测试2;延迟:1320

测试3;延迟:1320

测试4;延迟:1320

测试5;延迟:1320

1 个答案:

答案 0 :(得分:2)

casper.then(function() { 
  for (i=0; i<=5; i++) { 
    delay = getRandomIntFromRange(1000, 5000);
    this.wait(delay, (
      function(j,d) { 
        return function() { 
          this.echo('Test ' + j + '; delay: ' + d); 
        }; 
    })(i,delay)); 
  } 
});