- Notes de publication
- Démarrage
- Paramétrage et configuration
- Projets d'automatisation
- Dépendances
- Types de workflows
- Comparaison de fichiers
- Meilleures pratiques d'automatisation
- Intégration du contrôle de code source
- Débogage
- L'outil de diagnostic (Diagnostic Tool)
- Analyseur de workflow
- À propos de l'analyseur de workflow
- ST-NMG-001 - Convention d'affectation de noms des variables
- ST-NMG-002 - Convention d'affectation de noms des arguments
- ST-NMG-004 - Duplication du nom complet
- ST-NMG-005 - La variable remplace une autre
- ST-NMG-006 - La variable remplace l'argument
- ST-NMG-008 - Longueur de variable dépassée
- ST-NMG-009 - Ajouter un préfixe aux variables DataTable
- ST-NMG-011 - Ajouter un préfixe aux arguments Datatable
- ST-NMG-012 - Valeurs par défaut de l'argument
- ST-NMG-016 : longueur d'argument dépassée
- ST-DBP-002 - Nombre élevé d'arguments
- ST-DBP-003 - Bloc d'interception vide
- ST-DBP-007 - Plusieurs couches de l'organigramme
- ST-DBP-020 - Propriétés de sortie non définies
- ST-DBP-023 : Workflow vide
- ST-DBP-024 - Vérification de l’activité de persistance
- ST-DBP-025 - Condition préalable à la sérialisation des variables
- ST-DBP-026 - Utilisation de l’activité Délai
- ST-DBP-027 - Pratiques exemplaires de persistance
- ST-DBP-028 - Condition préalable à la sérialisation des arguments
- ST-MRD-002 - Valeurs par défaut des noms d'activités
- ST-MRD-004 - Activités inaccessibles
- ST-MRD-005 - Séquences redondantes
- ST-MRD-007 - Clauses If imbriquées
- ST-MRD-008 - Séquence vide
- ST-MRD-009 - Activités profondément imbriquées
- ST-MRD-011 - Utilisation de la ligne d'écriture
- ST-MRD-017 - Incomplet si (Incomplete If)
- ST-USG-005 - Arguments d'activité codée en dur
- ST-USG-009 - Variables inutilisées
- ST-USG-010 - Dépendances inutilisées
- ST-USG-014 - Restrictions sur les paquets (Package Restriction)
- ST-USG-020 - Nombre minimum de messages consignés
- ST-USG-024 - Non utilisé, sauvegardé pour plus tard (Unused Saved for Later)
- ST-USG-025 - Utilisation abusive de la valeur enregistrée (Saved Value Misuse)
- ST-USG-026 - Restrictions d'activité (Activity Restrictions)
- ST-USG-027 - Packages requis
- ST-USG-028 - Restreindre l'invocation des modèles de fichier
- Variables
- Arguments
- Noms d'espace importés
- Enregistrement
- Éléments de l'interface utilisateur
- À propos des éléments d'interface utilisateur
- Propriétés des activités de l'interface utilisateur
- Exemple d'utilisation des méthodes de saisie
- Méthodes de sortie ou de capture de données d'écran
- Exemple d'utilisation de méthodes de sortie ou de capture de données d'écran
- Génération de tables à partir de données non structurées
- Capture relative de données
- Flux de contrôle
- Sélecteurs
- Réf. d’objets
- Capture de données
- Automatisation des images et des textes
- À propos de l'automatisation des images et des textes
- Activités liées à la souris et au clavier
- Exemple d'utilisation de l'automatisation de la souris et du clavier
- Les activités de type texte
- Exemple d'utilisation d'automatisation de texte
- Activités de type OCR
- Activités de type image
- Exemple d'utilisation de l'automatisation d'image et d'OCR
- Citrix Technologies Automation
- Automatisation de RDP
- Automatisation de Salesforce
- Automatisation SAP
- Automatisation VMware Horizon
- Journalisation
- Outil ScreenScrapeJavaSupport
- Protocole Webdriver
- Suite de tests - Studio
- Extensions
- Résolution des problèmes
- À propos de la résolution des problèmes
- Prise en charge et limitations de Microsoft App-V
- Résolution des problèmes rencontrés avec Internet Explorer x64
- Problèmes rencontrés avec Microsoft Office
- Identification des éléments d'IU dans PDF avec options d'accessibilité
- Réparation de la prise en charge d'Active Accessibility
- Résolution des problèmes rencontrés avec JxBrowser Applications
- Surveillance des événements utilisateur
- Résolution des problèmes Citrix
- Automatisation des applications exécutées sous un autre utilisateur Windows
À propos des sélecteurs
Pour automatiser des actions spécifiques dans l’interface utilisateur, vous devez interagir avec différents fenêtres, boutons, listes déroulantes et bien d’autres. Les éléments d’IU peuvent être identifiés notamment en utilisant leur position sur l’écran, mais cela peut être peu fiable.
Dans Studio, ce problème est résolu grâce à l’emploi de sélecteurs. Leur rôle est de stocker les attributs d’un élément d’interface utilisateur graphique et de ses parents sous la forme d’un fragment XML.
Les sélecteurs sont généralement générés par Studio de façon automatique, sans que vous ayez besoin de fournir d'autres données. C'est d'autant plus vrai si votre projet d'automatisation porte sur une interface utilisateur statique.
Certains logiciels (par exemple des applications Web) sont cependant caractérisés par une mises en page changeante et des nœuds d’attribut liés à des valeurs volatiles. Ces changements ne peuvent pas être anticipés par Studio et il est donc possible que vous ayez besoin de créer certains sélecteurs manuellement.
Voici la structure d'un sélecteur :
<node_1/><node_2/>...<node_N/>
<node_1/><node_2/>...<node_N/>
Le dernier nœud représente l'élément de l'interface utilisateur graphique que l'on souhaite automatiser, tandis tous les nœuds précédents représentent les parents de cet élément. <node_1> est généralement connu sous le nom de nœud racine : il représente la fenêtre supérieure de l'application.
Chaque nœud possède un ou plusieurs attributs pour permettre d'identifier sans hésitation un niveau donné de l'application sélectionnée.
Chaque nœud suit le format suivant :
<ui_system attr_name_1='attr_value_1' ... attr_name_N='attr_value_N'/>
<ui_system attr_name_1='attr_value_1' ... attr_name_N='attr_value_N'/>
Une valeur est associée à chaque attribut. Il est important de choisir des attributs avec des valeurs constantes, car le sélecteur ne pourra pas reconnaître l'élément si les valeurs des attributs changent à chaque démarrage de l'application.
Les sélecteurs sont affichés dans le panneau d'activités Propriétés (Properties), sous Saisie > Cible > Sélecteur (Input > Target > Selector). Toutes les activités liées aux éléments graphiques possèdent cette propriété.
La fenêtre Options de sélection (Selection Options) permet de sélectionner et de modifier une cible. Pour accéder à cette fenêtre, dans le panneau Concepteur de workflow (Workflow Designer), cliquez sur le bouton Options dans le corps d'une activité et sélectionnez Indiquer la cible à l'écran (Indicate target on screen) ou Modifier la cible (Edit target).
La fenêtre Éditeur de sélecteur (Selector Editor) permet d'afficher et de modifier le sélecteur automatique, ainsi que ses attributs. Pour accéder à cette fenêtre, utilisez le bouton Ellipse à côté du champ Sélecteur (Selector), dans le panneau Propriétés (Properties).
Option |
Description |
---|---|
Valider |
Le bouton indique l'état du sélecteur en vérifiant la validité de la définition de sélecteur et la visibilité de l'élément cible à l'écran. Le bouton Valider a trois états :
Le bouton est relié aux états de validation d'UI Explorer. |
Indiquer l'élément (Indicate Element) |
Indiquez un nouvel élément d'IU pour remplacer le précédent. |
Réparer (Repair) |
Permet d'indiquer à nouveau le même élément d'IU cible et de réparer le sélecteur. Cette opération ne remplace pas complètement le sélecteur précédent. Le bouton est uniquement disponible lorsque le sélecteur n'est pas valide. |
Mettre en surbrillance (Highlight) |
Met l'élément cible au premier plan. Il reste surligné jusqu'à ce que l'option soit désactivée par clic. Le bouton est uniquement activé si le sélecteur est valide. |
Modifier les attributs |
Contient tous les composants de l'application nécessaires à l'identification de l'application cible (une fenêtre, un bouton, etc.). Cette section est modifiable. |
Modifier le sélecteur |
Contient le sélecteur réel. Cette section est modifiable. |
Ouvrir dans UI Explorer |
Lance UI Explorer. L'option est uniquement activée pour les sélecteurs valides. |
Les tableaux suivants présentent la compatibilité entre les balises et les attributs utilisés pour créer des sélecteurs et la capacité du sélecteur:
Attribut |
Fuzzy |
RegEx |
Sensible à la casse |
---|---|---|---|
app |
|
|
|
cls |
|
|
|
title |
|
|
|
aaname |
|
|
|
ctrlname (WinForms) |
|
|
|
ctrlid (WinForms) |
|
|
|
idx |
|
|
|
tid |
|
|
|
pid |
|
|
|
isremoteapp |
|
|
|
aastate |
|
|
|
sapClient (SAP) |
|
|
|
sapLanguage (SAP) |
|
|
|
sapProgram (SAP) |
|
|
|
sapScreen (SAP) |
|
|
|
sapSession (SAP) |
|
|
|
sapSysName (SAP) |
|
|
|
NuméroSysSap (SAP) |
|
|
|
sapSysSessionId (SAP) |
|
|
|
sapTransaction (SAP) |
|
|
|
sapUser (SAP) |
|
|
|
Attribut |
Fuzzy |
RegEx |
Sensible à la casse |
---|---|---|---|
url |
|
|
|
htmlwindowname |
|
|
|
title |
|
|
|
app |
|
|
|
idx |
|
|
|
pid |
|
|
|
tid |
|
|
|
excludehwnd |
|
|
|
bsid (Browser Session ID) |
|
|
|
isremoteapp |
|
|
|
Les attributs tag et idx utilisent des valeurs de chaîne. Tous les autres attributs WEBCTRL ont des valeurs dynamiques.`
Attribut |
Fuzzy |
RegEx |
Sensible à la casse |
---|---|---|---|
tag |
|
|
|
idx |
|
|
|
aaname |
|
|
|
name |
|
|
|
id |
|
|
|
parentid |
|
|
|
class |
|
|
|
css-selector |
|
|
|
innertext |
|
|
|
isleaf |
|
|
|
parentclass |
|
|
|
parentname |
|
|
|
title |
|
|
|
src |
|
|
|
href |
|
|
|
tableCol |
|
|
|
tableRow |
|
|
|
colName |
|
|
|
rowName |
|
|
|
Attribut |
Fuzzy |
RegEx |
Sensible à la casse |
---|---|---|---|
Rôle |
|
|
|
name |
|
|
|
automationid |
|
|
|
labeledby |
|
|
|
aastate |
|
|
|
virtualname |
|
|
|
text |
|
|
|
rowName |
|
|
|
idx |
|
|
|
Attribut |
Fuzzy |
RegEx |
Sensible à la casse |
---|---|---|---|
accelkey (Accelerator Key) |
|
|
|
acskey (Access Key) |
|
|
|
automationid |
|
|
|
cls |
|
|
|
helpText |
|
|
|
legacyAccHelp (Legacy Accessible Help) |
|
|
|
enabled |
|
|
|
kbfocus (Is Keyboard Focusable) |
|
|
|
ispwd (Is Password) |
|
|
|
itemstatus |
|
|
|
itemtype |
|
|
|
rtid (Runtime ID) |
|
|
|
Rôle |
|
|
|
name |
|
|
|
pid |
|
|
|
tableRow |
|
|
|
tableCol |
|
|
|
rowName |
|
|
|
colName |
|
|
|
idx |
|
|
|
Attribut |
Fuzzy |
RegEx |
Sensible à la casse |
---|---|---|---|
Rôle |
|
|
|
name |
|
|
|
virtualname |
|
|
|
javastate |
|
|
|
tableRow |
|
|
|
tableCol |
|
|
|
rowName |
|
|
|
colName |
|
|
|
idx |
|
|
|
Attribut |
Fuzzy |
RegEx |
Sensible à la casse |
---|---|---|---|
id |
|
|
|
leafid
|
|
|
|
tableRow |
|
|
|
tableCol |
|
|
|
colName |
|
|
|
relpath |
|
|
|
itemId |
|
|
|
Veuillez noter que la balise Silverlight ne prend pas en charge les capacités Fuzzy, RegEx et Case-Sensitive.