Je suis très nouveau sur NodeJs et NightmareJs. J'ai besoin de télécharger plusieurs fichiers de la même page en utilisant le plugin nightmare-inline-download. Jusqu'à présent, mon code ci-dessous peut télécharger le premier fichier. Mais je ne peux pas comprendre comment télécharger tous les fichiers liés à la page, c'est-à-dire, comment boucler click(selector).download()
de la bonne façon. De plus, comment vais-je céder sur les téléchargements en boucle pour obtenir tous les noms de fichiers téléchargés?Comment puis-je télécharger plusieurs fichiers en série avec NighmareJs?
Notez les balises HTML <a>
Je dois cliquer sur: <a target="_blank" class="download-link">Download</a>
. Il n'y a pas d'attribut href
; cliquer sur la balise déclenche un script qui lance le téléchargement.
Le site ne permet de lancer qu'un seul téléchargement à la fois.
Voici mon code à ce jour:
var Nightmare = require('nightmare');
require('nightmare-inline-download')(Nightmare);
var nightmare = Nightmare({ show: false });
nightmare
.goto(pageUrl)
.evaluate({
var links = document.querySelectorAll('.download-link');
for(var i = 0, i < links.length; i++) {
links[i].setAttribute('download-this', 'true');
}
})
.click('[download-this="true"]') // will select just the first element
.download()
.end()
.then(() => {
console.log('done');
});