Wie befolgen Sie alle links in CasperJS?
Ich habe Probleme, auf alle JavaScript-basierten Verknüpfungen, die in einem DOM und speichern der
Ausgabe. Die links haben die form
<a id="html" href="javascript:void(0);" onclick="goToHtml();">HTML</a>
folgende code funktioniert Super:
var casper = require('casper').create();
var fs = require('fs');
var firstUrl = 'http://www.testurl.com/test.html';
var css_selector = '#jan_html';
casper.start(firstUrl);
casper.thenClick(css_selector, function(){
console.log("whoop");
});
casper.waitFor(function check() {
return this.getCurrentUrl() != firstUrl;
}, function then() {
console.log(this.getCurrentUrl());
var file_title = this.getTitle().split(' ').join('_') + '.html';
fs.write(file_title, this.getPageContent());
});
casper.run();
Jedoch, wie bekomme ich diese zu arbeiten, mit einem Selektor von "ein", klicken Sie auf alle
verfügbare links und Inhalte zu speichern? Ich bin mir nicht sicher, wie man die clickWhileSelector zum entfernen von Knoten aus der Auswahl als hier getan: Klicken Sie auf alle links, die passenden Selektor
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe ich dieses Skript, dass zuerst alle links von einer Seite dann speichern 'href' Attribute, die zu einem array, dann iteriert über das array und dann öffnen Sie jeden link einzeln und echo der url :
rusln Antwort funktioniert toll, wenn alle die links haben einen aussagekräftigen
href
Attribut (tatsächliche URL). Wenn Sie möchten, klicken Sie auf jedera
dass löst auch eine javascript-Funktion, müssen Sie möglicherweise Durchlaufen einige andere Weg über die Elemente.Ich vorschlagen mit der XPath-generator von stijn de ryck für ein element.
a
dass Sie den XPath und klicken Sie auf es von XPath.