在开始描述我的问题之前,我只想提个醒,所有页面,iFrames等都在本地驻留在PC上。而且我已经使用page.setBypassCSP(true)
暂时禁用了任何基于原产地的限制。
在这里,我有一个网页,其中嵌入了一个iFrame,该iFrame可能还嵌入了另一个(列表可以继续...)。某些较深的iFrame可以通过Javascript附加到其父级的主体中。 document.body.appendChild
中的setTimeout(..., 3000)
可以模拟动态iframe加载。我想知道在所有这些iFrame上评估脚本源的最佳方法是什么。我尝试使用page.on('framenavigated', ...)
,但这仅适用于页面的直接子框架。
我尝试使用page.frames()
递归遍历页面中的所有框架,但这仅适用于触发DOMContentLoaded
事件时可用的iFrame。
我正在寻找一种侦听所有嵌套iFrame触发的所有framenavigated
事件的方法,即使是在页面加载后在任何时间点动态加载的事件也是如此。任何指针将不胜感激。
更新:
我尝试使用page.on('frameattached', ...)
和page.on('framedetached', ...)
监听事件,但这也不能让我列出所有iFrame。