簡體   English   中英

CasperJS Ajax點擊捕獲

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM