VBA IE Automation - iFrame lesen
Unser Unternehmen verwendet ein browserbasiertes Programm für den Betrieb. Ich automatisiere eine Lösung, um durch diese Site zu navigieren und am Ende einige Daten abzurufen.
Die Website selbst verwendet sehr häufig normale Frames. Am Ende meines Prozesses werden meine Daten jedoch nicht in einem Frame, sondern in einem iFrame gespeichert. Es gibt auch sehr umfangreiches Javascript auf der Website, wodurch die Dinge schlammig werden.
Wenn Sie die Quell-URL des iFrames abrufen und in einem neuen Browser öffnen, wird die Seite fehlerhaft dargestellt (d. H. Die Seite zeigt anstelle des Inhalts einen Fehlertext an).
Meine Frage:
Wie kann ich den Text über VBA aus einem iFrame holen?
Was ich bisher versucht habe (zögern Sie nicht zu überspringen):
Zielen Sie auf einen bestimmten iFrame in einem bestimmten Frame und greifen Sie auf innerHTML zu
With ie.document.frames(myFrameNum).document.getElementsByTagName("iframe")(1).document.body
stringResult = .innerHTML
Richten Sie ein bestimmtes iFrame nach ID in einem bestimmten Frame aus und greifen Sie auf innerHTML zu
Dim iFrm As HTMLIFrame
Set iFrm = ie.document.frames(myFrameNum).document.getElementByID("iFrameID")
Debug.Print iFrm.document.body.innerText
Suchen Sie nach Instanzen von iFrames und greifen Sie zu (Keine Ergebnisse - möglicherweise, weil der Iframe in einen Frame eingebettet ist?)
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