Я пытаюсь очистить HTML-ссылки для разных страниц с веб-сайта с использованием CasperJS.Каков правильный способ использования document.querySelectorAll в CapserJS?
В моей адресной строке браузера (Firefox/Chrome) это работает отлично и открывает все ссылки, которые я ищу.
javascript:document.querySelectorAll('a[href^="/page"]').click();
Однако, когда я пытаюсь запустить что-то похожее на CasperJS, используя приведенный ниже код, я получаю много ошибок, которые не согласуются с вышеизложенным.
var pageNodes = this.evaluate(function() {
return document.querySelectorAll('a[href^="/page"]');
});
console.log(typeof(pageNodes)); //Shows object
console.log(pageNodes.length); //Shows 11, which is correct
var links = [];
for(var i = 0; i < pageNodes.length; i++) {
console.log(i);
console.log(pageNodes[i].href);
links.push(pageNodes[i].href);
}; //pageNode[0].href shows the correct link. pageNode[1] is a null for some reason when it shouldn't be!
Я также пробовал создание прототипа Array на выше, но с теми же результатами! Может ли кто-нибудь помочь мне разобраться, что случилось?
var pageArray = this.evaluate(function(pageNodes) {
return Array.prototype.splice(pageNodes, 0);
}); //Gives the same problem, since pagesNodes[1] is null.
Вы пропускаете закрывающий парн в строке # 3 – rgthree
К сожалению. Типите, когда набираете вопрос. Проблема все еще остается ... – user2843816