как работает casperjs waitforselector? - PullRequest
0 голосов
/ 29 июня 2018

Я пытаюсь написать программу, которая открывает ссылку, а затем ждет появления определенного селектора. Я использую последнюю версию 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);
});

}

1 Ответ

0 голосов
/ 29 июня 2018

Код кажется правильным, я предлагаю вам использовать более конкретный селектор, возможно, это шаблон, который появляется где-то еще в HTML, потому что он немного универсален. Можем ли мы увидеть код HTML?

...