[R] Recherche d'objets dans une page web

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
mimi31110
Niveau 1
Niveau 1
Messages : 7
Enregistré le : mar. 15 juil. 2008 16:47
Localisation : Toulouse / Luchon
Status : Hors ligne

[R] Recherche d'objets dans une page web

#1

Message par mimi31110 »

Bonjour,
je viens de découvrir AutoIt et je suis en train de le tester, pour voir s'il correspond à ce que je cherche ...

je dois effectuer des tests sur une application web, remplir des champs de textes mais aussi cliquer sur des boutons. Et mon but serait d'automatiser ces tests par scripts...

remplir les champs, c'est bon, j'y arrive, mais est-il possible de chercher l'emplacement d'un bouton par son nom pour y cliquer dessus ???

merci
...Milie...
Modifié en dernier par mimi31110 le jeu. 24 juil. 2008 11:02, modifié 3 fois.
...Milie...
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: recherche d'objets dans une page web

#2

Message par timmalos »

La premiere chose à savoir, c'est le clic sur le bouton renvoi t'il directement sur un lien ou renvoi t'il a un code javascript :?:

:!: Le plus simple est que tu nous donne ton lien et ce que tu veux pour qu'on te fasse un exemple. :!:

:arrow: Dans le premier cas:
Nb: ceci est un exemple il existe des solutions multiples

Code : Tout sélectionner

$oIE = _IECreate ("https://.../cgi-bin/..._login.pl?language=fr",0,0)

$oForm = _IEFormGetCollection ($oIE,0) ; Ici on cherche la premiere form de la page.Souvent bon


;-------------------------------------------------------------------------
;$oAccount = _IEFormElementGetObjByName ($oForm, "Laccount")
;$oPassword = _IEFormElementGetObjByName ($oForm, "Lpassword")
;_IEFormElementSetValue ($oAccount, "pseudo")
;_IEFormElementSetValue ($oPassword, "*******")

;Les lignes d'en dessus correspondent au remplissage, ce que tu arrive à faire
;--------------------------------------------------------------------------
Et après on envoi le tout, terminé.
_IEFormSubmit($oForm)
 
Pour des explications detaillées, demande.

:arrow: Dans le deuxieme cas, on ne peut pas utiliser _IEFormSubmit
IL faut donc ecrire:

Code : Tout sélectionner

$oForm = _IEFormGetCollection ($oIE,0) ; Ici on cherche la premiere form de la page.Souvent bon
$oValider = _IEFormElementGetObjByName ($oForm, "Valider")
_IEAction($oValider,"click")
mimi31110
Niveau 1
Niveau 1
Messages : 7
Enregistré le : mar. 15 juil. 2008 16:47
Localisation : Toulouse / Luchon
Status : Hors ligne

Re: [..] recherche d'objets dans une page web

#3

Message par mimi31110 »

Merci, la première solution fonctionne.
j'ouvre ma page, je rempli mes champ puis je valide avec

Code : Tout sélectionner

$oForm = _IEFormGetCollection ($oIE,0)
_IEFormSubmit($oForm)
mais ceci que fait la première ligne ? elle récupère un objet Form ?

dans mon cas, c'est un bouton "OK" qui déclanche un javascript affichant un menu vertical si les champs sont correctement remplis. et je dois ensuite "cliquer" si des liens hypertextes de ce menu... Et ces liens, ils sont de repérables ?

je dois pouvoir y accéder par "TAB" mais c'est possible pas clic ???
...Milie...
Avatar du membre
jbnh
Niveau 11
Niveau 11
Messages : 1932
Enregistré le : ven. 02 mai 2008 14:54
Localisation : Bruxelles
Status : Hors ligne

Re: [..] recherche d'objets dans une page web

#4

Message par jbnh »

c'est possible pas clic ???
par clic je suppose, si c'est le cas tout simplement Mouseclick
Balise [..] devant votre requête en cours, [R] quand résolu | Pas de message concernant les bots !

Merci
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: [..] recherche d'objets dans une page web

#5

Message par timmalos »

jbnh a écrit :
c'est possible pas clic ???
par clic je suppose, si c'est le cas tout simplement Mouseclick
il doit plutot parler des clics effectués avec _IEAction pour que le script soit fonctionnel sur n'importe quelle marchine.

$oForm = _IEFormGetCollection ($oIE,0) recupere le premier objet form de la page.
En fait, a chaque bouton Envoyer est associé plusieurs Input, generalement.

$oForm = _IEFormGetCollection ($oIE,0) equivaut à _IEFormGetObjByName si il n'y a qu'un form dans la page.
Allez dans l'aide et regardez bien et testez les exemples fournis pour comprendre, c'est assez compliqué.

Après, quant on a le oForm, on utilise les

$oAccount = _IEFormElementGetObjByName ($oForm, "Laccount") pour trouver ici le premier Input qui a pour name "Laccount". On pourrait tout aussi bien pu faire
$oForm = _IEFormElementGetCollection ($oForm,0)
et
$oForm = _IEFormElementGetCollection ($oForm,1) pour le 2eme input qui est generalement le Mot de Passe



Ensuite, pour votre page, le plus simple serait de m'envoyer le lien, par mp si vous ne souhaitez pas le rendre public.
Car votre menu doit je pense se trouver dans une frame, ou iframe, ce qui rend la chose encore plus compliquée.

Regardez ces fonctions:

_IEFrameGetCollection
_IELinkGetCollection puis _IELinkClickByIndex (marche seulement si votre lien ne renvoi pas vers du javascript) , dans ce cas il faut utiliser _IEAction


Bonne continuation
mimi31110
Niveau 1
Niveau 1
Messages : 7
Enregistré le : mar. 15 juil. 2008 16:47
Localisation : Toulouse / Luchon
Status : Hors ligne

Re: [..] recherche d'objets dans une page web

#6

Message par mimi31110 »

Merci, beaucoup beaucoup !!!

pour manipuler une page web, c'est pratique je connaitre le nom des objets...
dans mon cas, je cherche à automatiser des tests sur un site web durant sa conception, donc j'ai le code html, et donc le nom des objets...

je fais donc :

Code : Tout sélectionner

; -> on récupère la <Form> de nom « name_form »
$oForm = _IEFormGetObjByName ($oIE, "name_form") 
; -> on récupère l’objet de nom « obj » qui est dans la form « name_form », soit $oForm
$oElt=_IEFormElementGetObjByName ($oForm, "obj") 
; -> on modifie la valeur du champ récupéré
_IEFormElementSetValue ($oElt, "valeur voulu !")
 
et ça marche aussi bien pour des champs de saisi que des combobox ou des listbox !


Merci @ tous !
...Milie...
coincoin
Niveau 1
Niveau 1
Messages : 7
Enregistré le : ven. 06 juin 2008 16:08
Status : Hors ligne

Re: [R] Recherche d'objets dans une page web

#7

Message par coincoin »

Question qui va dans le meme sens que le topic:
J'ai fais choisir a travers une combobox un fois, et dans ma page web il existes une combobox avec les meme choix.
j'ai tenté:

Code : Tout sélectionner

$Combobox_home = _IEFormElementGetObjByName($Formulaire_home, "combobox1") 
   ; Se place dans la combobox de la page Web
_IEFormElementSetValue($Combobox_home,$choix1) 
   ; écrit le choix n°1 dans la comboxbox de la page web.
 
Une petite idée?
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: [R] Recherche d'objets dans une page web

#8

Message par timmalos »

La , comme ca, aucune. Il me faudrait idealement la page internet ainsi que votre script complet:)
Sinon je vais difficilement pouvoir trouver vu que je n'ai jamais été confronté a ce genre de combobox.
coincoin
Niveau 1
Niveau 1
Messages : 7
Enregistré le : ven. 06 juin 2008 16:08
Status : Hors ligne

Re: [R] Recherche d'objets dans une page web

#9

Message par coincoin »

Je me suis peut etre mal exprimé :)
En faite quand il y a un edit sur une page internet, il suffit de ce placé dedant et d'écrire ce que l'on désir.

Code : Tout sélectionner

$Edit_login_home = _IEFormElementGetObjByName($Formulaire_home, "login")

_IEFormElementSetValue($Edit_login_home,$pseudo) ; écrit le pseudo dans l'edit
 
Maintenant je voudrais faire la meme chose, avec une combobox. Il y a une combobox avec un certain nombre de choix. Si je désir le choix n°3 par exemple comment dois-je procéder.
merci
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: [R] Recherche d'objets dans une page web

#10

Message par timmalos »

Je n'ai pas fait d'essais, car flemme de chercher un site approprié, mais _IEFormElementCheckBoxSelect devrait marcher.
coincoin
Niveau 1
Niveau 1
Messages : 7
Enregistré le : ven. 06 juin 2008 16:08
Status : Hors ligne

Re: [R] Recherche d'objets dans une page web

#11

Message par coincoin »

Merci c'est la fonction que je ne trouvais pas, c'est parfait :)
avander
Niveau 1
Niveau 1
Messages : 6
Enregistré le : mar. 01 sept. 2009 16:42
Status : Hors ligne

Re: [R] Recherche d'objets dans une page web

#12

Message par avander »

Pour tester des applications web il te faudrait peut-être un outil plus adapté comme Webtest de Canoo, non?
Répondre