【发布时间】:2013-05-17 22:44:30
【问题描述】:
我们的业务使用基于浏览器的程序进行操作。我正在自动化一个解决方案来浏览这个站点,并在最后检索一些数据。
网站本身大量使用常规框架。但是,在我的流程的最后,它不是将我的数据填充到一个框架中,而是一个 iFrame 中。整个网站还有非常广泛的 javascript,使事情变得混乱。
获取 iFrame 的 src URL 并在新的浏览器中打开错误的页面(即页面显示错误文本而不是内容)。
我的问题:
如何通过 VBA 从 iFrame 中获取文本?
到目前为止我已经尝试过什么 (请随意跳过):
在特定的frame中定位特定的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
【问题讨论】:
-
如果你分享链接我可以试试。这个链接可能对你有帮助vbaexpress.com/forum/showthread.php?t=40649
-
您已经尝试过的具体问题是什么? “在特定框架中定位特定 iFrame,并抓取 innerHTML” 的代码看起来是正确的。
-
@Santosh 是私人内网,不能分享。不过,我之前确实看过那个帖子。问题是当我尝试按照它的建议导航到 iframe src 时,页面错误。我不认为导航到该页面是一种选择。
-
@Gaffi 该选项的问题在于它提取了错误的 HTML。我没有得到 iFrame 的内容,而是包含 iframe 标记本身的 html。
-
@AaronContreras 我已经做到了。再次是 Intranet 站点。
标签: internet-explorer vba iframe automation