Я пытаюсь написать программу, которая открывает ссылку, а затем ждет появления определенного селектора. Я использую последнюю версию casperjs и phantomjs. Я запускаю свою программу на Mac. Чтобы дождаться моего селектора, я использовал this.waitForSelector. В большинстве случаев функция, кажется, работает как задумано, но иногда она говорит, что селектор есть, когда его нет, а затем программа пытается получить доступ к вышеупомянутому селектору и, естественно, вылетает. Я не могу сказать, является ли мой код плохим, или это проблема с casperjs. Любое понимание будет высоко ценится, спасибо!
function addLinks(link) {
this.waitForSelector("tr a", function() {
this.echo(this.getHTML("tr a"));
this.echo("I'm sure tr a is available in the DOM");
var found = this.evaluate(searchLinks);
this.echo(found.length + " links found on " + link);
for(var x = 0;x < found.length;x++){
this.echo(found[x]);
}
links = links.concat(found);
fs.write("forever.txt", links, 'a');
next();
},function timeout() { // step to execute if check has failed
this.echo("I can't haz my screenshot.");
if(this.getHTML("span.numResults") == "(No Results)"){
this.echo("nothing doing " + curr);
next();
}
else{
curr += String(alphabet[0]);
}
this.echo("curr " + curr);
});
}