Javascript 如何使用phantomjs单击;“加载更多”;按钮,直到页面完全填充?
我对学习phantomjs和casperjs非常陌生,我正在寻找一些关于如何单击“加载更多”按钮以完全填充页面的指针。我看过类似的问题,但没有看到任何匹配的(至少我不理解)。这样做的目的是从livestream.com事件页面中删除查看器的计数 首先,我可以使用phantomjs(以cnet为例)获取纯文本的第一页,如下所示: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
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);
不久前我就做过这样的实现&它工作得很好