casperjs: l'évaluation du document.querySelector renvoie une valeur null

Je suis en utilisant le waitForSelector() et captureSelector() méthodes de CasperJS attendre et sélectionnez un élément à l'aide d'un sélecteur CSS, puis enregistrer une capture d'écran.

Cependant, je suis la recherche que parce que le css background a été mis à transparent, la capture d'écran s'avère très laid, donc je voudrais définir la background à white. J'ai fait en sorte que je suis en utilisant document.querySelector dans un evaluate() appel, mais cela ne semble pas fonctionner.

Voici mon script (vous pouvez ignorer tout ce qui est avant casper.start(..., j'ai juste compris le début de la partie pour le contexte de l'extrait de code suivant):

var casper = require("casper").create({
verbose: true,
clientScripts: ["libs/jquery-1.10.2.js"]
});
var utils = require("utils");
var requiredOptions = [ 'url', 'selector', 'filename' ];
var missingOptions = new Array();
for (var i = 0 ; i < requiredOptions.length ; i++) {
var opt =  requiredOptions[i];
if (!casper.cli.has(opt)) {
missingOptions.push(opt);
}
}
if (missingOptions.length > 0) {
casper.die("\nMissing the following CLI options: " + missingOptions.join(", ") + "\n\nExiting.\n");
}
var url = casper.cli.get('url');
var selector = casper.cli.get('selector');
var filename = casper.cli.get('filename');
casper.start(url, function() {
this.waitForSelector(selector, function then() {
var element = this.evaluate(function() {
return document.querySelector(selector);
});
console.log(element); //returns null
element.style.backgroundColor = "white"; //throws TypeError: 'null' is not an object (evaluating 'element.style') 
this.captureSelector("captures/" + filename, selector);
}, function onTimeout() {
this.die("URL timed out.");
});
});
casper.run();

Et c'est le résultat que j'obtiens quand je passe dans une url, sélecteur, et le nom du fichier à écrire la capture d'écran:

yiqing:~/Repos/rectslice()$ casperjs slice.js --filename='screenshot.png' --url='https://github.com/n1k0/casperjs/issues/192' --selector='.discussion-bubble-inner'
null
TypeError: 'null' is not an object (evaluating 'element.style')                 
/Users/yiqing/Repos/rectslice/slice.js:31 in then
/Users/yiqing/Repos/rectslice:1329 in runStep
/Users/yiqing/Repos/rectslice:332 in checkStep

Remarque: Oui, je suis bien conscient que cette capture d'écran s'avère très bien (en ce que le fond est blanc)... j'ai juste décidé d'utilisation d'une ancienne url, depuis que je suis seulement en essayant d'illustrer que la document.query() appel ne fonctionne pas comme prévu.

Aussi, vous ne savez pas si les versions sont pertinentes, mais ici, ils sont de toute façon:

yiqing:~/Repos/rectslice()$ casperjs --version
1.0.2
yiqing:~/Repos/rectslice()$ phantomjs --version
1.9.0

OriginalL'auteur 3cheesewheel | 2013-07-30