Кошмар условного ожидания ()

Я пытаюсь сканировать веб-страницу с помощью Nightmare, но хочу дождаться#someelem присутствовать, только если он действительно существует. В противном случае я хочу, чтобы Кошмар продолжался. Как это можно сделать с помощью.wait()?

Я не могу использовать.wait(ms), С помощью.wait(selector) означает, что Nightmare будет продолжать ждать, пока элемент не появится, но если на странице никогда не будет этого элемента, Nightmare будет продолжать ждать вечно.

Последний вариант заключается в использовании.wait(fn), И я попробовал что-то вроде этого

.wait(function(cheerio) {
            var $ = cheerio.load(document.body.outerHTML);
            var attempt = 0;

            function doEval() {
                if ( $('#elem').length > 0 ) {
                    return true;
                }
                else {
                    attempt++;

                    if ( attempt < 10 ) {
                        setTimeout(doEval,2000); //This seems iffy.
                    }
                    else {
                        return true;
                    }
                }
            }

            return doEval();
        },cheerio)

Итак, подождите и попробуйте снова (до порога), и если элемент не найден, то просто продолжайте. Код кажется неправильным вокруг setTimeout, потому что.wait делается в области видимости браузера.

Заранее спасибо!

Ответы на вопрос(3)

Ваш ответ на вопрос