Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Internet explorer VBA IE自动化-读取iFrame_Internet Explorer_Vba_Iframe_Automation - Fatal编程技术网

Internet explorer VBA IE自动化-读取iFrame

Internet explorer VBA IE自动化-读取iFrame,internet-explorer,vba,iframe,automation,Internet Explorer,Vba,Iframe,Automation,我们的业务使用基于浏览器的程序进行操作。我正在自动化一个解决方案来浏览这个站点,并在最后检索一些数据 网站本身大量使用常规框架。然而,在我的过程的最后,它不是将我的数据填充到一个帧中,而是填充到一个iFrame中。在整个网站上也有非常广泛的javascript,使事情变得混乱 抓取iFrame的src URL并在新浏览器中打开会导致页面出错(即页面显示错误文本而不是内容) 我的问题: 如何通过VBA从iFrame中获取文本 到目前为止我尝试过的内容(请随意跳过): 以特定帧中的特定iFrame为

我们的业务使用基于浏览器的程序进行操作。我正在自动化一个解决方案来浏览这个站点,并在最后检索一些数据

网站本身大量使用常规框架。然而,在我的过程的最后,它不是将我的数据填充到一个帧中,而是填充到一个iFrame中。在整个网站上也有非常广泛的javascript,使事情变得混乱

抓取iFrame的src URL并在新浏览器中打开会导致页面出错(即页面显示错误文本而不是内容)

我的问题:

如何通过VBA从iFrame中获取文本

到目前为止我尝试过的内容(请随意跳过):

以特定帧中的特定iFrame为目标,并获取innerHTML

通过特定帧中的ID将特定iFrame作为目标,并获取innerHTML

找到iframe的任何实例,并抓取它们(没有结果-可能是因为iframe嵌入到一个框架中?)

尝试使用:

`Dim iFrm As HTMLIFrame
Set iFrm = ie.document.frames(myFrameNum).document.getElementByID("iFrameID")
Debug.Print iFrm.contentDocument.body.innerHTML`

我也遇到了同样的问题,我用下面的脚本得到了解决方案

IE.Document.getElementsbyTagName(“iframe”)(0)。contentDocument.getElementsbyTagName(“body”)(0)。innertext

试试这个

Dim elemCollection As IHTMLElementCollection

Set elemCollection = objDoc.frames("iFrameID").document.all
Debug.Print elemCollection.Item("pagemenuli-adv").innerText

我遇到了一个类似的问题,最终用以下方法解决了它:

ObjIE.document.frames(0).document.forms(0).innerText

注:我需要的文本是以iframe中的形式呈现的

我是VBA新手,有人能解释一下框架(0)/表格(0)中的0到底是什么吗


如果它类似于框架索引或框架编号(根据我的假设),请让我知道如何找到框架索引(在任何HTML中)?

如果您共享链接,我可以尝试。此链接可能对您有所帮助您已经尝试过的内容有哪些具体问题?“针对特定框架中的特定iFrame,并获取innerHTML”的代码看起来是正确的。@Santosh这是一个私有的intranet站点,因此我无法共享。然而,我以前确实看到过那个帖子。问题是,当我尝试按照它的建议导航到iframe src时,页面会出错。我不认为导航到该页面是一个选项。@Gaffi该选项的问题是它拉错了HTML。我得到的不是iFrame的内容,而是包含iFrame标记本身的html。@aaronconteras我已经这样做了。同样是内联网网站。你是不是从“我尝试过但不起作用的东西”部分复制/粘贴了这个?这个问题有点老了,所以我面前不再有这个项目了。不过,我会很快把它挖出来,并为子孙后代进行测试。我会说,这至少看起来很有希望,我在谷歌上搜索了它的不同部分,似乎对它(或非常类似的代码)有一些共识使用。我知道这个问题有点老了。我在这个页面上搜索解决方案…但不知怎么的,我得到了解决方案,所以我粘贴了帮助我的东西…也许将来会有人得到好处…不明白投票否决的原因吗?是的,我也不确定为什么投票被否决,但不是我。对不起,给你添麻烦了。。没问题。谁投了反对票,谁就一定有更好的解决方案。请匿名粘贴解决方案。请分享你的知识。你不应该在回答中提问。不要查看提示,很抱歉,我将发布一个新问题。
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
`Dim iFrm As HTMLIFrame
Set iFrm = ie.document.frames(myFrameNum).document.getElementByID("iFrameID")
Debug.Print iFrm.contentDocument.body.innerHTML`
Dim elemCollection As IHTMLElementCollection

Set elemCollection = objDoc.frames("iFrameID").document.all
Debug.Print elemCollection.Item("pagemenuli-adv").innerText