获取CasperJS迭代URL列表

时间:2017-05-11 09:14:56

标签: javascript arrays casperjs

我有3个网址可以循环搜索要下载的文件。

lst = ["BX", "BL", "BM"];
lst.forEach(function(i){
    var url = 'http://www.tzg-infocenter.com/visubl_php//images/' + i + '/' + clip + '/' +  casper.cli.raw.get('entryDate') + '/' + ref + '.PDF';
    casper.start(url,function(){

        this.echo('>>> Starting URL ' + url);
    }
});
casper.run();

但只回显最后一个元素。 “起始网址......”只回显一次。为什么Casper没有迭代整个数组呢?

1 个答案:

答案 0 :(得分:1)

看起来你在每次迭代时重启casper。而不是在第一次迭代后使用thenOpen

  

thenOpen

     

签名 thenOpen(字符串位置[,混合选项])

     

添加新的导航步骤以打开新位置,并可选择在加载时添加下一步:...

尝试以下方法:

var casper = require('casper').create();

var urls = ['https://google.com', 'http://casperjs.org/', 'http://phantomjs.org']

urls.forEach(function(url, idx) {

  if ( idx > 0 ) {
    casper.thenOpen( url, function() {
      this.echo(this.getTitle());
    });
  } else {
    casper.start( url, function() {
      this.echo(this.getTitle());
    });
  }

})


casper.run();