Bonjour,
J'ai compulsé pas mal de sujet sur les frames mais je ne comprends toujours pas l'interaction avec eux, si quelqu'un pouvait répondre à mes questions, peut être qu'une explication du cas vaut mieux que 10 tutos.
Donc voilà le code (épuré) de la page entre le frame et l'objet que je souhaite atteindre dans ce frame.
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 <html><head> <script type="text/javascript"></script> <script language="javascript"> <!-- </script> <script language="javascript" src=""></script> <title></title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <frameset id="componentFrame1" rows="75,*" cols="*" border="0" frameborder="no" framespacing="0"> <frame name="topFrame" src="" noresize="" scrolling="NO"> <frameset name="componentFrame2" id="componentFrame2" rows="*" cols="1,*" border="0" frameborder="no" framespacing="0"> <frame name="leftFrame" id="leftFrame" src="" scrolling="NO"> <frame name="mainFrame" src=""> ---------------------------ELEMENT QUE JE VEUX SELECTIONNER : Le premier INPUT ----------------------------------------------------------------------- <form name="quickSearchForm" class="quickSearchForm" action="processQuickSearch.do" method="POST"> <p> <input name="searchString" class="inputTexte" onkeypress="if(verif_keyCode(event)){submitQuickSearch();return false;}" onclick="this.value=''" type="text" value="Keyword of Item"> </p> <p> <a title="search" class="formButton" onclick="submitQuickSearch();return false;" href="#">ok</a> </p> <input name="containerPageURI" type="hidden" value=""> <input name="tileId" type="hidden" value="10433304"> <input name="codeFilterMode" type="hidden" value="ON"> <input name="descrFilterMode" type="hidden" value="ON"> </form> --------------------------------------------------------------------------------------------------------------------------------------------------------- </frameset> </frameset> </html>
Et voici le code d'arrivée sur la page.
Voilà le code qui pour le moment n'est pas complet, car je bute sur la sélection de cet input box dans laquelle je veux entrer une référence.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 Dim IE As Object Dim maPageHtml As HTMLDocument Dim maPageHtml2 As HTMLDocument Dim plageref As Range Dim NBL As Long Dim InputZoneTexte As Object Dim InputZoneTexte1 As HTMLInputElement Dim InputZoneTexte2 As IHTMLElement Dim InputZoneTexte3 As HTMLLabelElement Dim InputZoneTexte4 As HTMLInputButtonElement Dim InputZoneTexte5 As HTMLFrameElement Dim Tabdate As Range Dim valeurrechercher As Variant Dim monElement As IHTMLElement Dim monElement2 As IHTMLElement Dim blabla As IHTMLInputElement Set Tabdate = Worksheets("Prix").Range("A1:AA1") Set plageref = Worksheets("Prix").[A1].CurrentRegion NBL = plageref.Rows.Count For Each vale In plageref.Rows If vale.Cells(1, 1) <> "" And vale.Cells(1, 1) <> "PN" Then Set maPageHtml2 = IE.Document Set InputZoneTexte5 = maPageHtml2.frames(2).Document.getElementsByName("searchString") --- ICI j'ai une erreur 438 valeurrechercher = vale.Cells(1, 1) '<input name="searchString" class="inputTexte" onkeypress="if(verif_keyCode(event)){submitQuickSearch();return false;}" onclick="this.value=''" type="text" value="Keyword of Item"> End If Next
Plusieurs questions :
1. J'ai 3 frames et 2 frameset sur cette page, je dois donc indiquer frames(4) ou frames(2) ?
2. Mes variables HTMLFrameElement ou HTMLInputElement, j'ai vu que certains le font en late binding, avec un object puis le HTMLFrameElement, mais là encore ça ne passe pas.
3. Pour sélectionner chaque données dans la même frame, je suis obligé d'écrire "frames(2).Document.getElementsBy" ou est ce que je peux créer une variable de la frame, un peu dans le style d'une variable range ?
EDIT : J'ajouterais que j'ai bien trouver l'élément avec cette frame, mais que celui-ci qui est un inputelement, ne veux absolument pas rentrer dans une variable.
Partager