Page 1 sur 1
[R] Recuperer l'index d'un lien hypertexte
Posté : jeu. 24 juil. 2008 10:52
par mimi31110
Bonjour,
je travaille sous internet explorer, je récupère l'ensemble des liens hypertexte de la page, et je voulais savoir s'il était possible de connaitre l'index d'un lien cherché par texte ?

c'est pas clair ?
je m'explique en code :
Code : Tout sélectionner
;creation de l'objet application IE
$oIE = _iecreate($url)
;attente de chargement
_IELoadWait($oIE)
;récupération de l'ensemble des liens
$oLinks = _IELinkGetCollection($oIE, 0)
;clic sur le lien de texte " TC_FILE_JASON "
_IELinkClickByText($oLinks, " TC_FILE_JASON ")
Est-il possible de récupérer l'index de ce lien de texte " TC_FILE_JASON ", car je cherche à cliquer sur le lien juste avant (donc index-1) dont je ne peux connaitre le nom ... ???
Re: [..] Recuperer l'index d'un lien hypertexte
Posté : ven. 25 juil. 2008 14:24
par mimi31110
voilà, après quelques recherches, j'ai trouvé comment manipuler un peu des objets.
à partir d'un objet InternetExplorer.Application, on récupérer des Éléments par le nom ou l'id :
Code : Tout sélectionner
$o_object.document.links ; ensemble des liens
$o_object.document.getElementByName($s_Name) ; un objet par son nom
$o_object.document.getElementById($s_Id); un objet par son id
ces fonctions sont utilisé dans le code de IE.au3 (_IEGetObjBy...())
existe-t-il une documentation sur l'ensemble des fonctions/méthodes que l'on peut appliquer à un objet ???
du genre la liste des fonctions/méthodes comme getElementById, getElementByName, etc ...
Re: [..] Recuperer l'index d'un lien hypertexte
Posté : ven. 25 juil. 2008 17:10
par ani
La seul documentation connu a ce sujet est celle de microsoft.com.
normalement ce lien pourra t'aider

C'est ma lecture de vacance

=>
Référence HTML & DHTML
Pour l'index normalement dans la documentation au3 coté IE il devrait y avoir divers exemples.
Re: [..] Recuperer l'index d'un lien hypertexte
Posté : lun. 28 juil. 2008 11:11
par mimi31110
voilà, j'ai trouvé une solution.
en parcourant les corps des fonction de ie.au3, des petits essais, et je suis arrivée à créer une fonction qui clique sur le lien précédant le lien de nom s_name :
Code : Tout sélectionner
Func ClickLienPrecedentByName(ByRef $o_object, $s_name)
;récupère les liens "<a ... />"
$oLinks = _IETagNameGetCollection($o_object, "a")
;recherche du lien precedent et de son index
$s_linkText = $s_name
$i_index = Number(0)
;on parcours tous les liens en concervant le précédent
For $link In $oLinks
$linktext = $link.outerText & ""
If $linktext = $s_linkText Then
$i = $i_index - 1
$o = $o_prec
EndIf
$o_prec = $link
$i_index = $i_index + 1
Next
$o.click
EndFunc
dans mon cas, ma page contient comme l'image suivante une liste de liens : je dois clique sur la petite croix pour développer la donnée " ACQSOL_ENVISAT " qui est elle même un lien cliquable, donc sur le lien avant !

- capture.PNG (8.53 Kio) Vu 1329 fois
voili mon problème résolu !
@+