2016-10-10 1 views
2

Ich benutze CasperJS, um eine Anwendung zu testen. Das ist, ich möchte erfassen, wie lange es tatsächlich dauerte, um das Element zu erhalten, auf das ich mit waitForSelector() warte.Wie kann ich erfassen, wie lange waitFor() in CasperJS gewartet hat?

Wenn ich die Protokollebene zu debuggen gesetzt, zeigt es in der Konsole, wie lange es für das Element nahm ich warte erscheinen:
enter image description here

Ich mag diesen Wert erhalten und es in einem Geschäft Variable. Ist das mit CasperJS/PhantomJS möglich? Wenn nicht, welchen Rahmen könnte ich stattdessen verwenden?

+0

Wenn die gegebene Antwort Ihr Problem gelöst hat, können Sie [akzeptieren] (http://meta.stackexchange.com/q/5234/266187) es. Wenn nicht, dann erweitern Sie bitte, was falsch ist. –

Antwort

2

Der Do-it-yourself-Ansatz wäre es, die Zeit, um sich zu nehmen, die ausreichend genau sein sollen:

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

Natürlich ist dies nicht sehr wiederverwendbar ist. Es wäre nur leichter zu registrieren, um die "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 
    } 
}); 

Beachten Sie, dass diese asynchron ist, aber man kann immer noch Schritte (then* und wait* Funktionen) von den Event-Handler einplanen. Wenn Sie sich auch für den Timeout-Fall interessieren, können Sie sich zum "waitFor.timeout" Event anmelden.

Verwandte Themen