[..] Automatiser le remplissage de formulaire.

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Narol
Niveau 1
Niveau 1
Messages : 1
Enregistré le : jeu. 16 juil. 2009 12:09
Status : Hors ligne

[..] Automatiser le remplissage de formulaire.

#1

Message par Narol »

Bonjour,

Petit nouveau, je découvre avec grand plaisir AutoIt.
Le Hic, c'est que j'y connais rien en script.

Alors le but de mon message est que je voudrais automatiser le remplissage d'un formulaire (interface Web de pointage quotidien).

Alors j'ai fais le plus simple (mais sûrement pas optimiser, mais bon, ça marche).
Pour l'instant je vais sur le site en question, je me met sur un Lundi, et lance mon script qui rempli le formulaire journalier
(avec des TAB et des DOWN ...)
Ensuite mon script passe au jour suivant etc sur les 5 jours de la semaine (je dois remplir exactement les mêmes champs à chaque fois).

ma première question est : comment créer une condition que fait que :
Si sur la page, il y a écrit "Jour Férié" ou "Week-End" ALORS,
cliquez sur bouton "jour suivant"
SINON, remplir le formulaire (avec ce que j'ai déjà fait)

Ma deuxième question est : comment créer une boucle avec compteur (pour faire tourner ce script sur un mois complet par exemple)

Code : Tout sélectionner

Send ("!{TAB}")
;If MsgBox(0, "Week End" Then
;   Send("{TAB 3}")
;   Send("{SPACE}")
;   Sleep(5000)
;Else
; LUNDI
Send("{TAB 7}")       ; descend sur le menu "activité 1"
Send("{DOWN 9}")    ; choisi mon "activité 1"
Send("{TAB}")          ; descend sur le menu "activité 2"         
Send("{DOWN 9}")    ; choisi mon "activité 2"
Send("{TAB}")         ; descend sur le menu "activité 3"
Send("{DOWN 13}")  ; choisi mon "activité 3"
Send("{TAB 3}")       ; descend sur bouton "Valider"
Send("{SPACE}")      ; valide
Sleep(5000)             ; attend 5 secondes pour chargement de la page
Send("{TAB 3}")       ; descend sur "jour suivant"
Send("{SPACE}")      ; valide "jour suivant"
Sleep(5000)             ; attend 5 secondes pour chargement de la page
(J'ai essayé avec ce que j'ai mis en commentaire, mais ça ne semble pas fonctionner comme ça.)
j'entends déjà des rires aux éclats ... mais soyez indulgents, je débute :-)

Merci par avance pour vos aides
Narol
AirPE
Niveau 3
Niveau 3
Messages : 38
Enregistré le : lun. 23 mars 2009 09:40
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Automatiser le remplissage de formulaire.

#2

Message par AirPE »

Bonjour à toi!

Je fais un petit retour sur le forum! Je suis pas venu depuis longtemps! :?

Avant tout je te suggère de remplacer les Send("{TAB 99999}") et ce genre de commandes par des ControlClick, qui je pense, est un moyen bien moin fastidieux et je pense plus optimisé. Cette commande permet de cliquer directement là où tu le souhaites! Si tu fais une recherche sur le forum tu trouvera des exemples!

Si tu dois remplir exactement les mêmes champs plusieurs fois tu peux utiliser des fonctions (voir Func)

Pour vérifier si un texte est écrit sur une page et si AutoIt peut le voir tu as l'outils très utile "AutoIt Window Info"
Pour ton exemple, ma première idée serait un code du genre

If WinActive("", "Jour Férié") Or WinActive("", "Week-End") Then
ControlClick(...voir comment fonctionne cette commande suivant ce qui t'intéresse...)
Else
;Appel de la fonction remplirFormulaire (par exemple! :P ) qui contient ton code
EndIf


Le truc c'est qu si tu as plusieurs fenêtre qui contiennent "Jour fériéé ou "Week-End", ça peut perturber ton script! il faudra renseigner plus de texte ou tout simplement le titre de la fenêtre dans le WinActive.

Pour ta deuxième question, je ne comprend pas trop mais les boucles, t'en a plusieurs:
while...next, do...until, for etc...

tu peux y créer une variable qui s'incrémente ou si tu veux un temps voir avec les fonction Timer

Fais des recherches sur le forum! :wink:
Répondre