永远等待CasperJS / PhantomJS的东西

时间:2014-09-04 16:07:19

标签: javascript web-scraping phantomjs casperjs scraper

是否有办法永远等待某事?

E.g。

我将使用fb作为示例,因为在我的网站上是相同的。 每次我的Facebook时间线上都有新帖子时,会显示一个面板“点击此处加载帖子”。

基本上,我需要的是在面板可见后触发一些动作(点击它)。 我知道waitUntilVisible,但它只运行一次,我想永远运行并捕获很多次。

1 个答案:

答案 0 :(得分:0)

是的,您可以在达到超时时重新启动等待功能。这是有效的,因为onTimeout的{​​{1}}回调将在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);