CasperJS Load next page in loop

Posted by SquiresSquire on Stack Overflow See other posts from Stack Overflow or by SquiresSquire
Published on 2013-11-02T21:50:49Z Indexed on 2013/11/02 21:53 UTC
Read the original article Hit count: 260

I've been working on a script which collates the scores for a list of user from a website. One problem is though, I'm trying to load the next page in the while loop, but the function is not being loaded...

 this.thenOpen("http://www.url.com?ul=" + currentName + "&sortdir=desc&sort=lastfound", function (id) {
            return function () {
                this.capture("Screenshots/" + json.username[id] + ".png");
                if (!casper.exists(x("//*[contains(text(), 'That username does not exist in the system')]"))) {

                    if (casper.exists(x('//*[@id="ctl00_ContentBody_ResultsPanel"]/table[2]'))){
                        this.thenEvaluate(tgsagc.tagNextLink);

                        tgsagc.cacheCount = 0;
                        tgsagc.continue = true;
                        this.echo("------------ " + json.username[id] + " ------------");
                        while (tgsagc.continue) {
                            this.then(function(){
                                this.evaluate(tgsagc.tagNextLink);
                                var findDates, pageNumber;
                                pageNumber = this.evaluate(tgsagc.pageNumber);
                                findDates = this.evaluate(tgsagc.getFindDates);
                                this.echo("Found " + findDates.length + " on page " + pageNumber);
                                tgsagc.checkFinds(findDates);
                                this.echo(tgsagc.cacheCount + " Caches for " + json.username[id]);
                                this.echo("Continue? " + tgsagc["continue"]);
                                return this.click("#tgsagc-link-next");


                            });

                            }

                            leaderboard[json.username[id]] = tgsagc.cacheCount;
                            console.log("Final Count: " + leaderboard[json.username[id]]);
                            console.log(JSON.stringify(leaderboard));
                    }
                    else {
                        this.echo("------------ " + json.username[id] + " ------------");
                        this.echo("0 Caches Found");
                        leaderboard[json.username[id]] = 0;
                        console.log(JSON.stringify(leaderboard));

                    }


                }
                else {
                    this.echo("------------ " + json.username[id] + " ------------");
                    this.echo("No User found with that Username");
                    leaderboard[json.username[id]] = null;
                    console.log(JSON.stringify(leaderboard));

                }

© Stack Overflow or respective owner

Related posts about JavaScript

Related posts about screen-scraping