My script simply gathers the number of reports on a page, then goes to the next page and does the same. The goal is to get the total number of reports across multiple pages.
UPDATED
var casper = require('casper').create({ clientScripts: ["./lib/jquery-2.1.3.min.js"], // verbose: true, logLevel: "debug" }); casper.on('remote.message', function(msg) { this.echo('LOG: ' + msg); }); casper.on('page.error', function (msg, trace) { this.echo( 'Error: ' + msg, 'ERROR' ); }); var reportCount, newReportCount, reportPages; casper.start("reports.html", function() { reportPages = this.evaluate(function() { return $('#table2 tbody tr td').children('a').length -1; }); //first page of reports reportCount = this.evaluate(function() { return $('#table1 tbody').first().children('tr').length; }); this.echo('initial count: ' + reportCount); this.echo('pages: ' + reportPages); //check if more than 1 page and add report count if (reportPages > 1) { newReportCount = this.thenOpen('reports2.html', function(){ var newCount = this.evaluate(function(count) { add = count + $('#table1 tbody').first().children('tr').length; // console.log('new count inside: ' + add); return add; }, reportCount); console.log(newCount); //this shows correct new value 32 }); console.log(newReportCount); //this shows [object Casper] neoReportCount = this.thenOpen('reports3.html', function(count){ console.log(newReportCount); //this shows [object Casper] //do the same count }, newReportCount); } casper.run(); Here is the output in console
Pages: 3 First count: 15 [object Casper], currently at file:///**/reports.html 32 [object Casper], currently at file:///**/reports3.html