У меня есть массив ссылок, и следующий код должен открыть каждую ссылку в массиве ссылок.then() метод только открывает ту же ссылку
var x; var i = 0;
casper.start(URL, function() {
x = links.split(" "); // now x is an array of links
});
casper.then(function() {
this.each(x, function() {
this.thenOpen((partialURL + x[i]), function() {
this.echo(this.getTitle()); // display the title of page
i++; // change the link being opened
});
});
});
casper.run();
Проблема заключается в том, что он открывает первую ссылку и просто продолжает открывать эту ссылку снова и снова. Это как i
не меняется.
Один из примеров CasperJS имел ту же проблему, что и для последователей Twitter, он откроет ссылку для каждого последователя Twitter, но будет отображать одно имя (последнее в списке) все время.
Вот пример:
var users = ['subelsky','bmorejs'];
var casper = require('casper').create();
var idx,data,user;
var length = users.length;
casper.start();
for (idx=0; idx < length; idx++) {
user = users[idx];
casper.thenOpen('http://mobile.twitter.com/' + user,function() {
data = this.evaluate(function(location) {
return document.querySelector('div.profile td.stat.stat-last div.statnum').innerText;
});
this.echo(user + ": " + data);
});
}
casper.run();
Выходной сигнал будет bmorejs: 2861 followers
и bmorejs: 503 followers
Можно ли это изменить?