Ждать чего-то вечного CasperJS/PhantomJS

есть ли способ или обходной путь, чтобы ждать чего-то вечно?

E.g.

Я буду использовать fb в качестве примера, потому что на моем сайте то же самое. Каждый раз, когда на моей временной шкале Facebook появляются новые сообщения, появляется панель «Нажмите здесь, чтобы загрузить сообщения».

По сути, мне нужно вызвать какое-то действие после того, как панель станет видимой (нажмите на нее). Я знаю о waitUntilVisible, но он запускается только один раз, а я хотел бы запускать вечно и захватывать много раз.


person Rodrigo Pereira    schedule 04.09.2014    source источник


Ответы (1)


Да, вы можете запустить функцию ожидания заново, когда истечет время ожидания. Это работает, потому что обратный вызов onTimeout для casper.waitUntilVisible будет выполняться внутри ступенчатая функция waitUntilVisible.

function continuous(){
    casper.waitUntilVisible("#someSelector", function then(){
        // do something on success
    }, continuous);
}

casper.start(url).then(continuous).then(function(){/* something further */}).run()

Если вы никогда не хотите завершать работу, просто используйте невозможный селектор для "#someSelector" или пользовательский waitFor:

casper.waitFor(function check(){ return false; }, function then(){
    // do something on success
}, continuous);
person Artjom B.    schedule 04.09.2014