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

PhantomJS - any way to check if a javascript function is running?

本文关键字:运行 任何 方法 是否 检查 javascript 函数 PhantomJS      更新时间:2023-09-26

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

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

如果是这样,有没有办法判断它正在从哪个javascript资源中执行?

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

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

不是真的。

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

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

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

检测 JavaScript 是否已编译并运行可能不是解决此问题的正确方法。最慢的操作是网络请求。您可以通过计算已启动的请求(onResourceRequested(和已完成的请求(onResourceReceived(来检测所有请求是否已完成,然后仅添加一点静态等待时间来编译/运行。

相关文章: