使用Puppeteer在每个动态加载的嵌套iFrame上评估javascript

时间:2019-06-04 07:41:18

标签: puppeteer

在开始描述我的问题之前,我只想提个醒,所有页面,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。

0 个答案:

没有答案