I have the following code:
casper.then(function(){
    for (siteID = 1 ; siteID < 10; siteID++) {
        casper.then(function(){
            this.fill('form#form1', {'txtSiteName' : siteID }, true);
        });
        casper.then(function(){
            this.click('#BtnSiteSearch');
            this.wait('500');
        });
        casper.then(function(){
            this.echo("Longitude: " + this.fetchText('#pnlSiteDetail > fieldset > table > tbody > tr:nth-child(2) > td:nth-child(2)'));
            this.echo("Latitude: " + this.fetchText('#pnlSiteDetail > fieldset > table > tbody > tr:nth-child(3) > td:nth-child(2)'));
            this.echo("City: " + this.fetchText('#pnlSiteDetail > fieldset > table > tbody > tr:nth-child(5) > td:nth-child(2)'));
            this.echo("Area: " + this.fetchText('#pnlSiteDetail > fieldset > table > tbody > tr:nth-child(7) > td:nth-child(2)'));
            this.echo("Address: " + this.fetchText('#pnlSiteDetail > fieldset > table > tbody > tr:nth-child(9) > td:nth-child(2)'));
            this.echo("Access: " + this.fetchText('#pnlSiteDetail > fieldset > table > tbody > tr:nth-child(10) > td:nth-child(2)'));
            this.echo("H&S: " + this.fetchText('#pnlSiteDetail > fieldset > table > tbody > tr:nth-child(13) > td:nth-child(2)'));
            this.echo("Engineers: " + this.fetchText('#pnlSiteDetail > fieldset > table > tbody > tr:nth-child(14) > td:nth-child(2)'));
            this.echo("Owner: " + this.fetchText('#pnlSiteDetail > fieldset > table > tbody > tr:nth-child(8) > td:nth-child(2)'));
            this.capture('test' + siteID + '.png');
        });
    }
});
My problem is that the for loop runs and increment to that last number in the for loop. Then the code runs 10x on the last number.
I believe it's something to do with Synchronous and Asynchronous but if I am honest I don't know how to work around the issue.
 
     
     
    