我们的业务使用基于浏览器的程序进行操作。我正在自动化一个解决方案来浏览这个站点,并在最后检索一些数据。
该网站本身非常大量地使用常规框架。但是,在我的流程的最后,它不是将我的数据填充到一个框架中,而是一个 iFrame 中。整个网站还有非常广泛的 javascript,使事情变得混乱。
获取 iFrame 的 src URL 并在新浏览器中打开会导致页面出错(即页面显示错误文本而不是内容)。
我的问题:
如何通过 VBA 从 iFrame 中获取文本?
到目前为止我尝试过的 (请随意跳过):
以特定框架中的特定 iFrame 为目标,并抓取 innerHTML
With ie.document.frames(myFrameNum).document.getElementsByTagName("iframe")(1).document.body
stringResult = .innerHTML
在特定框架中按 ID 定位特定 iFrame,并抓取 innerHTML
Dim iFrm As HTMLIFrame
Set iFrm = ie.document.frames(myFrameNum).document.getElementByID("iFrameID")
Debug.Print iFrm.document.body.innerText
找到 iFrame 的任何实例,然后抓取它们(没有结果 - 可能是因为 iframe 嵌入在框架中?)
Dim iFrm As HTMLIFrame
Dim doc As HTMLDocument
For iterator = 0 To ie.document.all.Length - 1
If TypeName(ie.document.all(iterator)) = "HTMLIFrame" Then
Set iFrm = ie.document.all(iterator)
Set doc = iFrm.document
Debug.Print & doc.body.outerHTML
End If
Next