[英]CasperJS Ajax click capture
我正在嘗試抓取網頁。 網站上有一個Ajax按鈕(一個div),單擊該按鈕將在頁面上添加更多結果(如顯示20個結果)。 我想單擊它3次。
使用下面的代碼:
casper.then(function() {
for(var i=1; i<=3; i++){
casper.evaluate(function(){
$("div.showMore").click();
return true;
})
casper.wait(5000, function then(){
this.capture('image.png');
})
}
})
但它只是捕獲頁面而沒有點擊。 我確定此代碼會單擊。
$("div.showMore").click();
我通過chrome控制台推送/嘗試進行了檢查。
那我想念什么?
JavaScript非常瘋狂,因為它具有異步特性。 我會特別在一個功能中拼出您的點擊到下一個功能。 這不是最理想的解決方案,但是您的代碼工作方式很可能是Casper在for循環之前或之中獲取屏幕截圖。 因此您的更改沒有被注冊。 嘗試將其拼寫為四個不同的Casper函數,看看結果如何。
casper.then(function() {
this.evaluate(function(){
$("div.showMore").click();
});
casper.wait(3000, function() {
this.evaluate(function(){
$("div.showMore").click();
});
casper.wait(3000, function() {
this.evaluate(function(){
$("div.showMore").click();
});
casper.wait(5000, function then(){
this.capture('image.png');
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.