Aus irgendeinem Grund zu arbeiten, wenn ich den folgenden Code versuchen ausgeführt wird:Verwendung von XPath mit CasperJS QuerySelectorAll nicht
var casper = require('casper').create();
var x = require('casper').selectXPath;
var links = [];
casper.start('http://www.website.com');
function getLinks() {
var links = document.querySelectorAll(x('//*[@id="horizontalList"]/li[@class="paddingRight6"]/a');
return Array.prototype.map.call(links, function(e) {
return e.getAttribute('href')
});
}
casper.then(function() {
links = this.evaluate(getLinks);
this.echo(links);
}
casper.run();
Gibt ein Null-Objekt, aber wenn verwende ich die gleichen XPath Wähler in Verbindung mit dem thenClick Methode, alles funktioniert gut und die URL ändert sich. Warum in aller Welt ist das?
Es ist nicht CasperJS 'querySelectorAll()' Methode ... es ist der Browser. Die Spezifikation ist nur für die Verwendung mit CSS-Selektoren gedacht: http://www.w3.org/TR/selectors-api XPath-Ausdrücke, während sie verwendet werden, um Dinge auszuwählen, sind insgesamt eine andere Familie. – BoltClock
Ah, danke für diese kleine Erklärung. Aktualisieren Sie die Antwort. –