2016-10-10 2 views
2

J'utilise casperJS pour tester une application. Cela étant, je veux capturer combien de temps il a fallu pour recevoir l'élément que j'attends avec waitForSelector().Comment puis-je capturer combien de temps waitFor() attendu en CasperJS?

Si je mets le niveau de débogage, il montre dans la console depuis combien de temps il a fallu pour l'élément que j'attendais apparaître journal:
enter image description here

Je veux que la valeur et le stocker dans un variable. Est-ce possible avec CasperJS/PhantomJS? Si ce n'est pas le cas, quel cadre pourrais-je utiliser à la place?

+0

Si la réponse donnée a résolu votre problème, vous pouvez [accepter] (http://meta.stackexchange.com/q/5234/266187) le. Si ce n'est pas le cas, veuillez développer ce qui ne va pas. –

Répondre

2

Le do-it-yourself approche serait de prendre le temps vous-même qui doit être suffisamment précis:

var start; 
casper.then(function(){ 
    start = new Date().getTime(); 
}); 
casper.waitFor(...); 
casper.then(function(){ 
    this.echo("waitFor() took " + (new Date().getTime() - start) + " ms"); 
}); 

Bien sûr, ce n'est pas très réutilisable. Il serait plus facile de vous inscrire au "log" event:

casper.on("log", function(logEntry){ 
    if (logEntry.message.indexOf("waitFor() finished in ") === 0) { 
     var time = parseInt(logEntry.message.match(/\d+/)[0]); 
     // TODO: do something with the time 
    } 
}); 

Notez que ceci est asynchrone, mais vous pouvez programmer encore les étapes (then* et wait* fonctions) du gestionnaire d'événements.

Si le cas du délai d'attente vous intéresse également, vous pouvez vous inscrire à l'événement "waitFor.timeout".