我如何捕捉 waitFor() 在 CasperJS 中等待了多长时间?
How can I capture how long waitFor() waited in CasperJS?
我正在使用 casperJS 来测试一个应用程序。
事情是,我想捕获接收我正在等待的元素的实际时间 waitForSelector().
如果我将日志级别设置为调试,它会在控制台中显示我等待的元素出现需要多长时间:
我想获取该值并将其存储在变量中。 CasperJS / PhantomJS 可以吗?如果不是,我可以使用什么框架?
自己动手的方法是自己花时间,这应该足够准确:
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"
活动。
我正在使用 casperJS 来测试一个应用程序。 事情是,我想捕获接收我正在等待的元素的实际时间 waitForSelector().
如果我将日志级别设置为调试,它会在控制台中显示我等待的元素出现需要多长时间:
我想获取该值并将其存储在变量中。 CasperJS / PhantomJS 可以吗?如果不是,我可以使用什么框架?
自己动手的方法是自己花时间,这应该足够准确:
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"
活动。