CasperJS Ajax点击捕获

时间:2014-03-16 21:37:55

标签: javascript ajax casperjs

我正在尝试抓一个网页。网站上有一个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控制台推送/尝试来检查它。

那我缺少什么?

1 个答案:

答案 0 :(得分:0)

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');
        });