Javascript 如何使用phantomjs单击;“加载更多”;按钮,直到页面完全填充?

Javascript 如何使用phantomjs单击;“加载更多”;按钮,直到页面完全填充?,javascript,angularjs,phantomjs,casperjs,Javascript,Angularjs,Phantomjs,Casperjs,我对学习phantomjs和casperjs非常陌生,我正在寻找一些关于如何单击“加载更多”按钮以完全填充页面的指针。我看过类似的问题,但没有看到任何匹配的(至少我不理解)。这样做的目的是从livestream.com事件页面中删除查看器的计数 首先,我可以使用phantomjs(以cnet为例)获取纯文本的第一页,如下所示: var page = require('webpage').create(); page.open('http://livestream.com/cnet', func

我对学习phantomjs和casperjs非常陌生,我正在寻找一些关于如何单击“加载更多”按钮以完全填充页面的指针。我看过类似的问题,但没有看到任何匹配的(至少我不理解)。这样做的目的是从livestream.com事件页面中删除查看器的计数

首先,我可以使用phantomjs(以cnet为例)获取纯文本的第一页,如下所示:

var page = require('webpage').create();

page.open('http://livestream.com/cnet', function() {
    console.log(page.plainText);
    phantom.exit();
});
不过,还有很多额外的事件列表需要单击“加载更多”。我希望使用以下伪代码扩展上述代码以实现此目的:

while ("Load More" exists) {
    click button
    delay to allow page to load
}
检查上述url上的按钮元素时,我发现以下内容:

<a href="javascript:void(0);" class="button thin_border_button black_border small_button ng-binding" ng-click="loadMoreEventsPublic('Archived')" ng-bind="loadMoreText">Load More</a>

如何反复单击(即ng click=“loadMoreEventsPublic('Archived')),直到页面完全加载,然后退出phantomjs

在casperjs中这样做更有意义吗

请原谅我的极端noob水平,我正在尽我所能去弄清楚这一点,但我需要一些指导


谢谢大家!

您可以编写自己的实现,如下面的框架所示

function onLoadMoreLinkExists(){
        casper.click("load more link selector");
        casper.then(function(){
            casper.waitFor("load more link selector", onLoadMoreLinkExists, afterAllLoad);
        });
}

function afterAllLoad(){
    // what to do once after all lazy load content loaded
}

casper.waitFor("load more link selector", onLoadMoreLinkExists
}, afterAllLoad);
不久前我就做过这样的实现&它工作得很好