Per qualche ragione quando provo eseguire il codice seguente:Uso XPath con CasperJS querySelectorAll non funzionante
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();
restituisce un oggetto nullo, ma quando uso la stessa selettore xpath in combinazione con il metodo thenClick, tutto funziona bene e l'URL cambia. Perché mai?
Non è il metodo 'querySelectorAll()' di CasperJS ... è il browser. Le specifiche sono progettate solo per l'uso con selettori CSS: http://www.w3.org/TR/selectors-api Le espressioni XPath, mentre sono usate per selezionare le cose, sono una famiglia completamente diversa. – BoltClock
Ah, grazie per quel po 'di chiarimenti. Aggiorna la risposta. –