幻影JS加载更多元素
Phantom JS load more element
我需要废弃Facebook视频页面,但"加载更多按钮"在Ajax中。所以我尝试使用PhantomJS点击按钮。
但是,我需要多次单击按钮。
所以这是我的代码:
var page = require('webpage').create();
page.open("https://www.facebook.com/MisterVOnline/videos", function(status) {
if ( status === "success" ) {
page.evaluate(function() {
while(document.querySelector(".uiMorePagerPrimary")){
document.querySelector(".uiMorePagerPrimary").click();
window.setTimeout(function () {
}, 5000);
}
});
window.setTimeout(function () {
//console.log(page.content);
page.render('facebook.jpeg');
phantom.exit();
}, 5000);
}
});
没有 while 循环时代码不起作用,他做了一个很好的加载......
我希望有人能帮助我!
问题已解决:使用 setInterval 代替循环:
var myTime = setInterval(function(){
if(document.querySelector(".uiMorePagerPrimary")!=null)
{
nbTry=0;
document.querySelector(".uiMorePagerPrimary").click();
}
else
{
nbTry++;
}
if(nbTry>5)
{
clearInterval(myTime);
window.callPhantom({ exit: true });
}
}, 500);
相关文章:
- Material Design Lite所有元素加载JS回调
- Chrome扩展:等待元素加载(async js)
- 从外部页面上的元素加载属性
- 聚合物元素加载非常缓慢
- 如何禁用 HTML 锚元素加载
- 尝试将一个元素加载到另一个元素时出现意外字符串
- 用kinetijs中的所有元素加载舞台
- 在特定元素加载时调用函数
- 如何在HTML元素加载到页面之前隐藏它们
- 是否可以延迟用户访问的第一个页面上的元素加载
- Facebook喜欢按钮不显示隐藏元素加载后
- 使用SELECT元素加载图像
- 如何使Javascript只在所有元素加载后才加载
- 在另一个元素加载后隐藏一个元素?AJAX
- 谷歌翻译元素-加载后页面准备好了
- 继续尝试函数,直到所需的DOM元素加载
- 在元素加载时调用javascript函数
- 如何检测或注册自定义元素加载并准备与之交互的回调
- HTML元素加载,即使他们没有附加到DOM?那么主干视图呢?
- 等待所有元素加载完成后执行操作