Je dois extraire toutes les valeurs d'identification avec des casperjs

id = casper.evaluate(function() { return Array.prototype.map.call(document.querySelectorAll("image"), function(e) {return e.getElementById();});}); this.echo(id); 

–Mettre à jour–

Si vous voulez obtenir des éléments contenant une class spécifique class utilisez une fonction helper pour racler les éléments que vous recherchez.

Exemple:

 var casper = require('casper').create(); var ids = []; function getIdsByClassValue() { // use your selector here eg. '.image'. var elems = document.querySelectorAll('input[type="submit"]'); return Array.prototype.map.call(elems, function (e) { // change to the attribute you are looking for. return e.getAttribute('value') }); } casper.start('https://www.google.com/'); casper.then(function () { ids = this.evaluate(getIdsByClassValue); }); casper.run(function() { this.echo('\n - ' + ids.join('\n - ')).exit(); }); 

Vous pouvez utiliser getElementsAttribute pour le faire.

.getElementsAttribute

Signature : getElementsAttribute (Sélecteur de chaîne, attribut String)

Récupère les valeurs d'un attribut sur chaque élément correspondant au sélecteur fourni:

Voici un exemple.

 var ids = []; var casper = require('casper').create(); casper.start('https://google.com/', function() { this.wait(1000, function() { ids = this.getElementsAttribute('*', 'id') .filter(function(id) { return id.length > 0; }) }); }); casper.then( function() { this.echo('\n - ' + ids.join('\n - ')).exit(); }) casper.run(); 

return e.getElementById(); Est évidemment pas logique, car getElementById est une fonction qui s'attend à un argument et n'est disponible que sur le document .

Il semble que vous souhaitez renvoyer la propriété d' id :

 var ids = casper.evaluate(function() { return Array.prototype.map.call(document.querySelectorAll("image"), function(e) { return e.id; }); }); this.echo(ids);