获取与 DOM 元素关联的事件列表

get list of events associated with a DOM elements

在 Firefox 中,可以在开发人员工具的 Inspect Element 中查看与每个元素关联的事件。

我想要一个与之相关的元素和事件的列表,以编程方式。最好使用 selenium+python.

我知道 getEventListeners 函数可以在 Chrome 的开发者工具中使用,但在 Selenium 中无法访问。

我浏览了 this question 中提供的大部分解决方案,但没有找到解决我的问题的方法。

我的最终目标是迭代抛出给定页面的 html 个元素并执行每个元素的事件。

您可以在一定程度上使用 python + selenium(仅 chrome):

body = driver.execute_cdp_cmd("Runtime.evaluate", {"expression": "document.body"})
listeners = driver.execute_cdp_cmd("DOMDebugger.getEventListeners", {"objectId": body["result"]["objectId"]})

以后可能跟谁有关!

据我测试此解决方案,@pguardiario 提供的 收集了大部分事件,但没有收集 ReactjQuery

为了克服这个问题并收集 ReactjQuery 事件,我深入研究了 firefox 源代码,发现 firefox 使用了某种 [=19] =]解决方案。