¿Por qué no funciona JavaScript simple en CasperJS?

Soy nuevo en CasperJS. Cómothis.echo(this.getTitle()); trabaja peroconsole.log("Page Title ", document.title); no? Además, ¿por qué no funciona mi document.querySelector? ¿Alguien tiene una buena explicación? ¿Dónde en la documentación de CasperJS puedo encontrar la respuesta?

Aquí está mi código:

var casper = require('casper').create();
var url = 'http://www.example.com/';

 casper.start(url, function() {
     this.echo(this.getTitle()); // works
     this.echo(this.getCurrentUrl()); // works
});

casper.then(function(){
    this.echo(this.getCurrentUrl()); // works
    console.log("this is URL: ", document.URL); // doesn't work
    console.log("Page Title ", document.title); // doesn't work
    var paragraph = document.querySelectorAll('p')[0].innerHTML;
    console.log(paragraph); // doesn't work
});

casper.run();

EDITAR: Estoy usando casper.thenEvaluate y casper.evaluate ahora y todavía no funciona. ¿Algunas ideas?

var casper = require('casper').create();
var url = 'http://www.example.com/';

casper.start(url, function() {
    this.echo(this.getTitle()); // works
    this.echo(this.getCurrentUrl()); // works
    console.log('page loaded: '); // works
});

casper.thenEvaluate(function(){
    var paragraph = document.querySelectorAll('p')[0].innerHTML; // doesn't work
    console.log(paragraph); // doesn't work
    console.log("Page Title ", document.title); // doesn't work
});

casper.run();

Respuestas a la pregunta(4)

Su respuesta a la pregunta