Javascript casperjsajax点击捕获

Javascript casperjsajax点击捕获,javascript,ajax,casperjs,Javascript,Ajax,Casperjs,我正试图刮一个网页。网站上有一个ajax按钮(一个div),单击它会在页面上添加更多结果的列表(比如显示20个以上的结果)。我想点击它三次 使用以下代码: casper.then(function() { for(var i=1; i<=3; i++){ casper.evaluate(function(){ $("div.showMore").click(); return true;

我正试图刮一个网页。网站上有一个ajax按钮(一个div),单击它会在页面上添加更多结果的列表(比如显示20个以上的结果)。我想点击它三次

使用以下代码:

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

谢谢你的回答。但不幸的是,这没有帮助。我注意到,没有循环,它甚至不能工作<代码>$(“div.showMore”).trigger('click')也没有帮助。。或
document.querySelectorAll(“.showMore”)[0]。单击()似乎没有人单击该按钮。有什么想法吗?请注意:所有提到的点击方法都是通过Chrome控制台工作的。可能是CasperJS bug?我想有时候可能会很挑剔,我最好的点击方法就是使用casper.click(x('with_xpath_here');这是一个很好的失败证明。这是jquery冲突。我从这个帖子得到了帮助:
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');
        });