PhantomJS - 检查javascript函数是否正在运行的任何方法?

时间:2015-04-09 00:02:14

标签: javascript phantomjs

我正在运行幻像js进程来呈现网页。该网页异步加载了许多javascript,每个都运行自己的函数。

有没有办法检查/调试webkit中的javascript引擎,以了解它是否正在执行任何javascript行(而不是空闲)?

如果是这样,有没有办法告诉它正在执行哪个javascript资源?

暂停javascript引擎,记录堆栈跟踪,然后正常恢复它就像完美一样。

我不介意阅读webkitphantomjsrender.js的源代码,自行修改,并从源代码重新编译它。我想首先问问你们,如果一个功能已经存在,或者某人已经完成了,因为谷歌没有给我任何结果。谢谢!

2 个答案:

答案 0 :(得分:0)

不是。

Phantom.js是一个集成测试工具。这意味着你不应该尝试探索内部,只断言结果。您想问的问题是:“我可以执行X操作”,“此功能是否从最终用户的角度出发”。

如果你想知道某个函数是否正在运行或在X行动中被调用。然后你正在查看你的程序的内部,你想要的是一个单元测试,你可能会断言一个函数是通过存根或嘲弄来运行的。如果是这种情况,那么请将sinon.js作为测试存根助手。

(请注意,您可以在phantom.js中运行您的单元测试 - 这没关系,因为您需要运行时来运行它们)

答案 1 :(得分:0)

检测JavaScript是否已编译并运行可能不是解决此问题的正确方法。最慢的操作是网络请求。您可以detect if all requests are done使用onResourceRequested计算已启动的请求,使用onResourceReceived计算已完成的请求,然后只为编译/运行添加一点静态等待时间。