CasperJS: iterando a través de URL

Soy bastante nuevo en CasperJS, pero ¿no hay una manera de abrir una URL y ejecutar comandos de CasperJS para bucles? Por ejemplo, este código no funciona como esperaba:

casper.then(function() {
    var counter = 2013;
    for (i = counter; i < 2014; i++) {
        var file_name = "./Draws/wimbledon_draw_" + counter + ".json";
        // getting some local json files
        var json = require(file_name);
        var first_round = json["1"];
        for (var key in first_round) {
            var name = first_round[key].player_1.replace(/\s+/g, '-');
            var normal_url = "http://www.atpworldtour.com/Tennis/Players/" + name;
            // the casper command below only executes AFTER the for loop is done
            casper.thenOpen(normal_url, function() {
                this.echo(normal_url);
            });
        }
    }
});

En lugar de Casper está llamandothenOpen en cada nueva URL por iteración, solo se llama DESPUÉS de que se ejecuta el bucle for. CasperthenOpen luego se llama con el último valor normal_url establecido en. ¿No hay un comando de Casper para que funcione cada iteración dentro del ciclo for?

Seguimiento: ¿Cómo hacemos que casper thenOpen devuelva un valor en la iteración actual del ciclo for?

Digamos, por ejemplo, que necesitaba un valor de retornothenOpen (tal vez si el estado de HTTP es 404 necesito evaluar otra URL, así que quiero devolver falso). ¿Es posible hacer esto?

Edicióncasper.thenOpen llame arriba:

    var status;
    // thenOpen() only executes after the console.log statement directly below
    casper.thenOpen(normal_url, function() {
        status = this.status(false)['currentHTTPStatus'];
        if (status == 200) {
            return true;
        } else {
            return false;
        }
    });
    console.log(status); // This prints UNDEFINED the same number of times as iterations.

Respuestas a la pregunta(2)

Su respuesta a la pregunta