VBA IE Automation - Czytaj iFrame
Nasza działalność wykorzystuje oparty na przeglądarce program do operacji. Automatyzuję rozwiązanie do poruszania się po tej stronie i pobierania niektórych danych na końcu.
Sama strona bardzo często używa zwykłych ramek. Jednak na samym końcu mojego procesu wypełnia moje dane nie w ramce, ale w ramce iFrame. W całej witrynie jest także bardzo rozbudowany JavaScript, co sprawia, że rzeczy są mętne.
Chwytanie adresu URL src iFrame i otwieranie w nowej przeglądarce błędów strony (tj. Strona wyświetla tekst błędu zamiast treści).
Moje pytanie:
Jak mogę pobrać tekst z iFrame przez VBA?
Co próbowałem do tej pory (możesz pominąć):
Wyceluj w konkretną ramkę iFrame w konkretnej ramce i chwytaj innerHTML
With ie.document.frames(myFrameNum).document.getElementsByTagName("iframe")(1).document.body
stringResult = .innerHTML
Kieruj konkretną ramkę iFrame według identyfikatora w określonej ramce i przechwyć innerHTML
Dim iFrm As HTMLIFrame
Set iFrm = ie.document.frames(myFrameNum).document.getElementByID("iFrameID")
Debug.Print iFrm.document.body.innerText
Znajdź dowolne wystąpienia ramek iFrame i złap je (Brak wyników - być może dlatego, że element iframe jest osadzony w ramce?)
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