2 pièce(s) jointe(s)
[IE7] Double document html dans une page web inaccessible depuis vba
Bonjour,
Je souhaite piloter depuis une macro vba une page internet qui n'est pas à ma main. Je me suis inspiré du (très bon) tuto que j'ai trouvé sur cette thématique.
Le site web en question est un peu particulier :
Pièce jointe 224069
En effet il y a 2 balises <html>. Du coup j'en conclu qu'il y a 2 documents imbriqués. Au final je n'arrive pas à récupérer les objets à partir des <id> ou des <name> qui sont présents après la deuxième balise <html> (alors que j'y arrive avec le frame name ="tittlebar" par exemple)
Le code que j'utilise est le suivant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| 'Initialisation des variables
Set IE = New InternetExplorerMedium
IE.navigate "https://xxx.fr"
IE.Visible = True
'attente du chargement de la page
WaitIE IE
'récupération du doc
Set IEDoc = IE.document
'récupération de la zone de texte
Set InputECMZoneTexte = IEDoc.all("TitleBar_txtSearch")
'récupération du bouton d'activation de la recherche
Set InputECMSearch = IEDoc.all("TitleBar_go_button") |
VBA n'arrive pas à récupérer ces infos, du coup je ne suis pas en mesure de renseigner du texte dans le formulaire <input> qui va bien, ni activer le bouton de recherche <button> pour lancer le script sur la page internet depuis mon code vba :
Pièce jointe 224068
Je ne vois pas trop quelle structure je dois adopter ? Déclarer un autre document une fois mon premier document lié ?
[EDIT] En regardant, je trouve bien des items dans mon IEDoc. Sauf que celà s'arrête aux <frame> ! Comment pourrais-je de nouveau "rentrer" dans ce frame pour aller y récupérer ce que je cherche ?
[EDIT2]
Citation:
On notera toutefois une exception pour l'élément <iFrame, dont la correspondance est en rouge. Le contenu de celui-ci, à savoir <html>, <head>, <title> et leurs balises de clôture respectives, n'apparaît pas dans l'objet all. Le composant iFrame est utilisé pour afficher dans le corps d'une page une autre page Web indépendante. Cette page indépendante a beau être affichée, son contenu n'est pas accessible dans l'arborescence VBA, il faudra charger cette page dans une fenêtre de navigation pour interagir avec elle.
=> Comment je charge cette page ? et surtout comment je récupère les valeurs que j'aurais injecté dedans dans ma première fenêtre IE ? et comment j'actionne le bouton (qui actionné dans la page IE de la frame seule ne sert à rien car il lance un script qui va chercher ailleurs ! )