我使用PhantomJS 2.1.1截取网页截图。
我在this particular page上需要的是在div元素上多次单击以便在diaporama中滑动图片,方法是使用page.evaluate块中的以下代码:
page.open(url, function () {
page.evaluate(function() {
for (i = 0; i < 10; i++) {
setTimeout(function(){
document.querySelector("div.linksNavNext.linksNav.icon-fleche-suiv").click();
}, 500);
}
});
setTimeout(function(){
page.render('url.png');
phantom.exit();
}, 2000);
});
如你所见,我试图通过发送10次点击事件来获得diaporama中的第10张照片。但我得到的只是第二张照片。看起来click事件只发送一次,尽管有for循环。
我做错了什么?
答案 0 :(得分:0)
似乎所有10次点击都在500毫秒内完成。你需要推迟超时:
for (i = 0; i < 10; i++) {
setTimeout(function(){
document.querySelector("div.linksNavNext").click();
}, 500 * i);
}