【问题标题】:How can I capture how long waitFor() waited in CasperJS?如何捕获在 CasperJS 中等待的 waitFor() 时间?
【发布时间】:2016-10-10 16:15:16
【问题描述】:

我正在使用 casperJS 来测试一个应用程序。 问题是,我想用 waitForSelector() 记录接收我正在等待的元素实际花了多长时间。

如果我将日志级别设置为调试,它会在控制台中显示我等待出现的元素需要多长时间:

我想获取该值并将其存储在一个变量中。 CasperJS / PhantomJS 可以做到这一点吗?如果不是,我可以改用什么框架?

【问题讨论】:

  • 如果给定的答案解决了你的问题,你可以accept它。如果没有,请详细说明问题所在。

标签: javascript performance-testing casperjs timing


【解决方案1】:

自己动手的方法是自己花时间,这应该足够准确:

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" 事件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-16
    • 2018-07-24
    相关资源
    最近更新 更多