Bonjour,
Même fichier de données et grille de saisie que les scripts précédents.
Mais ici, le script enchaine sur la ligne suivante du fichier en analysant les messages
que retourne l'application après validation de la saisie .
Dès qu'un message apparait, le script enchaine sur la ligne suivante du fichier.
Donc le traitement est beaucoup plus rapide.
Les types de messages :
- Soit OK, saisie prise en compte
- Soit message d'anomalie, exemple : "Age non numérique".
Le cycle :
1) Lit une ligne du fichier
2) Remplit la grille de saisie
3) Valide
4) Cherche un message retourné par l'application.
5) Mémorise dans le fichier bilan : le message + les données de la ligne
Pour simuler une situation réelle, le fichier comporte volontairement des données aberrantes ou incomplètes :
Pour une ligne :
- Nom pas rempli
- Prénom pas rempli
- Age pas rempli
- Age non numérique
- Age > 120 ans
En plus :
- Le % du fichier pris en compte
- Le temps estimé qu'il reste.
Ce peut être utile pour un traitement de plusieurs heures.
- La variable 'max_time_MAJ' est utilisée si le script ne trouve pas de message de l'application.
Après ce temps, le script :
- Mémorise que l'appli n'a pas retourné de message.
- Enchaine sur la ligne suivante.
Le script s’arrête s'il rencontre 'nb_max_time_MAJ_admissibles'
(Inutile de faire tourner le script s'il rencontre trop de cas non gérés.)
3 cas sont possibles :
- L'application ne fonctionne pas.
- Des messages apparaissent bien mais ils ne sont pas prévus dans le script.
- Le message a été prévu mais l'image correspondant à ce message n'est pas reconnue.
A faire avant une première action :
1) "Apprendre" au script les différents cas possibles ( y compris le cas 'OK'):
Saisir nom, prénom et age et provoquer un message soit 'ok' soit d'anomalie.
Par cas rencontré, créer une image.
Pour les modèles, voir dans répertoire 'img'
Attention,
il faut recréer les images pour les adapter à votre résolution d'écran.
En sortie, le fichier 'bilan' indique le traitement effectué pour chaque ligne du fichier.
2) Paramétrer :
Dans 1ere action :
Code: Select all
nom_fichier_in= "fichier_in.csv";
rep_fichier_in= "C:/temp/maj_dans_appli";
rep_fichier_out= "C:/temp/maj_dans_appli";
rep_img_msgS = "C:/temp/maj_dans_appli/img";
page_html= "a.htm";
max_time_MAJ =3000
nb_max_time_MAJ_admissibles = 5
Puis mémoriser la position des zones de saisie
(toujours dans 1ere action)
Code: Select all
var position_nom = new Point(553,380);
var position_prenom = new Point(548,405);
var position_age = new Point(548,428);
var position_validation = new Point(505,469);
var position_reset = new Point(613,472);
Puis adapter à votre contexte les parms de l action 'trouver image'
(toujours dans 1ere action)
Code: Select all
confidenceMinimum = 75
searchExpansion= 15
A faire avant chaque lancement du script :
Ouvrir la page a.htm.
Si vous voulez lancer le script en pièce jointe tel quel :
Placer le répertoire 'maj_dans_appli' sous c:/temp
Dans le répertoire 'img', il faut juste recréer les images pour les adapter à votre résolution d'écran
Si vous voulez adapter ce script pour un besoin analogue.
(avec d'autres variables)
- adapter ce qui est vu plus haut.
- modifier l'action 'Début de boucle'
Code: Select all
nom =t_ligne[0];
prenom =t_ligne[1];
age =t_ligne[2];
- modifier l'action 'Saisie dans la grille'
Code: Select all
mulot.move(position_nom)
mulot.click();
clavier.writeText(nom);
mulot.move(position_prenom)
mulot.click();
clavier.writeText(prenom);
mulot.move(position_age)
mulot.click();
clavier.writeText(age);
- faire une saisie manuelle de tous les types de cas possibles
Et mémoriser les messages de l'appli dans le répertoire 'img'
Il n'y a qu'une seule action à modifier pour que ce script fonctionne sous LINUX :
action : "recuperer dans une table tous les fichiers 'jpg' sous le rep 'img' ( les msgs de l'appli)"