Ich versuche sagen CasperJS erreichen folgendes zu machen:Wie CasperJS eine Schleife durch eine Reihe von Seiten
- Gehen Sie durch eine Reihe von Seiten, die nacheinander nach dem Datum benannt sind.
- Suchen Sie auf jeder Seite einen PDF-Link.
- Laden Sie das PDF herunter.
Ich habe ein paar Arbeitscode, aber ich verstehe nicht, wie CasperJS die Reihenfolge der Ereignisse durchläuft.
Zum Beispiel in dem Codebeispiel unten, versucht CasperJS Schritt zu verarbeiten 2 und wirft einen „Reference: nicht Variable finden: formDate“, während Schritt 1 überhaupt nicht aus irgendeinem Grund durchgeführt.
Was ist los mit meiner Argumentation?
Es scheint mir, dass die while
Schleife mit einer anderen Geschwindigkeit als die casper.then
Methoden ausgeführt wird.
casper.start();
casper.thenOpen('http://www.example.com', function() {
this.echo(this.getTitle());
});
casper.then(function() {
var start = new Date('2013-01-01T00:00:00');
var end = new Date('2013-01-31T00:00:00');
while(start < end) {
// step 1: define formDate
casper.then(function() {
var formDate = start.getFullYear()+"-"+("0" + (start.getMonth() + 1)).slice(-2) +"-"+("0" + start.getDate()).slice(-2) ;
casper.echo(formDate);
});
// Step 2: open the page and download the file
casper.thenOpen('http://www.example.com/' + formDate, function() {
var url = this.getElementAttribute('div#pdffulllink a.pdf', 'href');
this.echo(url);
this.download(url, 'Downloaded_' + formDate + '.pdf');
});
casper.then(function() {
// Step 3: redefine start
var newDate = start.setDate(start.getDate() + 1);
start = new Date(newDate);
});
}
});
casper.run(function() {
this.echo('Done.').exit();
});
Wie würdest du ein "Fortfahren" in dieser Schleife machen? – ProGirlXOXO