VBA IE Automatisation - Lire iFrame
Notre entreprise utilise un programme basé sur le navigateur pour les opérations. Je suis l'automatisation d'une solution pour naviguer à travers ce site, et de récupérer certaines données à la fin.
Le site lui-même utilise régulièrement des images très fortement. Cependant, à la fin de mon processus, il remplit mes données pas dans un cadre, mais un iFrame. Il est également très vaste javascript dans tout le site, ce qui rend les choses boueux.
Saisissant l'iFrame src URL et l'ouverture dans une nouvelle fenêtre de navigateur, les erreurs de la page (la page affiche le texte de l'erreur à la place du contenu).
Ma question:
Comment puis-je récupérer le texte d'une iFrame par VBA?
Ce que j'ai essayé jusqu'à présent (n'hésitez pas à sauter):
Cible spécifique iFrame dans une image spécifique, et de saisir innerHTML
With ie.document.frames(myFrameNum).document.getElementsByTagName("iframe")(1).document.body
stringResult = .innerHTML
Cible spécifique iFrame ID dans un cadre spécifique, et de saisir innerHTML
Dim iFrm As HTMLIFrame
Set iFrm = ie.document.frames(myFrameNum).document.getElementByID("iFrameID")
Debug.Print iFrm.document.body.innerText
Trouver toutes les instances de l'iframe, et de saisir eux (Pas de résultats, peut-être parce que l'iframe est embeded dans un cadre?)
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
- Si vous partager le lien, je peux essayer. Ce lien peut être utile pour vous vbaexpress.com/forum/showthread.php?t=40649
- Quels ont été les problèmes spécifiques avec ce que vous avez déjà essayé? Le code pour "Cible spécifique iFrame dans une image spécifique, et de saisir innerHTML" on dirait que ça serait correct.
- C'est un intranet privé du site, donc je ne peux pas partager. Cependant, je ne vois que le post précédemment. Le problème est que lorsque j'essaie de naviguer à l'iframe src comme il l'indique, la page des erreurs. Je ne crois pas que la navigation à la page est une option.
- Le problème avec cette option est que c'est de tirer le mauvais HTML. Je ne suis pas le contenu de l'iFrame, mais plutôt le code html qui inclut la balise iframe lui-même.
- je l'ai fait. Ce fut de nouveau site intranet.
Vous devez vous connecter pour publier un commentaire.
J'ai connu le même problème et j'ai eu la solution à l'aide de la ligne suivante du script..
IE.Document.getElementsbyTagName("iframe")(0).contentDocument.getElementsbyTagName("body")(0).innertext
Essayez ceci...
Merci abhinov.....
Ce fait le TRAVAIL pour Moi.....
J'ai fait face à un problème similaire, finalement résolu à l'aide de:
ObjIE.document.les cadres(0).document.les formulaires(0).innerText
Remarque: Le texte qui j'étais dans le besoin est présent sous la forme qui est situé dans une iframe.
Suis nouveau sur le VBA, certains corps d'expliquer ce qu'est exactement 0 en Images(0)/forms (0) est?
Si quelque chose comme Image d'index ou de numéro de trame(Comme de mon hypothèse) s'il vous plaît laissez-moi savoir comment peut-on trouver l'index de la séquence(en HTML)?
Essayez d'utiliser: