Aar*_*ras 9 iframe internet-explorer automation vba
我们的业务使用基于浏览器的程序进行操作.我正在自动化解决方案以浏览此站点,并在最后检索一些数据.
该网站本身非常使用常规框架.但是,在我的过程的最后,它不会将我的数据填充到框架中,而是填充到iFrame中.整个网站上也有非常广泛的JavaScript,让事情变得混乱.
抓取iFrame的src URL并在新浏览器中打开错误页面(即页面显示错误文本而不是内容).
我的问题:
如何通过VBA从iFrame中获取文本?
到目前为止我尝试过的 (随意跳过):
定位特定帧中的特定iFrame,并获取innerHTML
With ie.document.frames(myFrameNum).document.getElementsByTagName("iframe")(1).document.body
stringResult = .innerHTML
Run Code Online (Sandbox Code Playgroud)
在特定帧中按ID定位特定的iFrame,并获取innerHTML
Dim iFrm As HTMLIFrame
Set iFrm = ie.document.frames(myFrameNum).document.getElementByID("iFrameID")
Debug.Print iFrm.document.body.innerText
Run Code Online (Sandbox Code Playgroud)
找到iFrames的任何实例,并抓住它们(没有结果 - 也许是因为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
Run Code Online (Sandbox Code Playgroud)
小智 9
我遇到了同样的问题,我使用以下脚本编写了解决方案..
IE.Document.getElementsbyTagName( "IFRAME")(0).contentDocument .getElementsbyTagName("body")(0).innertext
小智 6
尝试这个...
Dim elemCollection As IHTMLElementCollection
Set elemCollection = objDoc.frames("iFrameID").document.all
Debug.Print elemCollection.Item("pagemenuli-adv").innerText
Run Code Online (Sandbox Code Playgroud)
小智 -1
尝试使用:
`Dim iFrm As HTMLIFrame
Set iFrm = ie.document.frames(myFrameNum).document.getElementByID("iFrameID")
Debug.Print iFrm.contentDocument.body.innerHTML`
Run Code Online (Sandbox Code Playgroud)