2016-10-10 42 views
2

我正在使用casperJS來測試一個應用程序。 事情是,我想捕獲實際需要多長時間接收waitForSelector()等待的元素。如何捕獲waitper()在CasperJS中等待的時間?

如果我設置日誌級別來調試,它顯示了多長時間,因爲我在等待元素出現在控制檯:
enter image description here

我想獲得該值,並將其存儲在一個變量。 CasperJS/PhantomJS可以嗎?如果不是,我可以使用什麼框架?

+0

如果給定的答案解決了你的問題,你可以[接受](http://meta.stackexchange.com/q/5234/266187)它。如果沒有,請詳細說明哪裏出了問題。 –

回答

2

的做自己動手的辦法是把自己這應該是足夠準確的時間:

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

當然,這也不是很可重複使用。它會更容易只註冊到"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 
    } 
}); 

注意,這是異步的,但你仍然可以安排從事件處理步驟(then*wait*功能)。

如果你也對超時情況感興趣,那麼你可以註冊到"waitFor.timeout"事件。