- Notes de publication
- Démarrage
- Paramétrage et configuration
- Projets d'automatisation
- Dépendances
- Types de workflows
- Comparaison de fichiers
- Meilleures pratiques d'automatisation
- Conception de workflow
- Automatisation de l'interface utilisateur
- Organisation du projet
- Cycle de vie 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
- 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
- Méthodes de saisie
- 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
- Automatisation des technologies Citrix
- Automatisation de RDP
- Automatisation SAP
- Automatisation VMware Horizon
- Journalisation
- L'outil de migration MiseAlEchelleCoordonnees (ScaleCoordinates)
- Outil ScreenScrapeJavaSupport
- Protocole Webdriver
- StudioPro
- Extensions
- Résolution des problèmes
- Internet Explorer x64
- Problèmes d'interopérabilité avec Microsoft Office
- Identification des éléments d'IU dans PDF avec options d'accessibilité
- Identification des éléments d'IU après les mises à jour de Windows
- Applications JxBrowser
- Surveillance des événements utilisateur
- Java dans App-V
- Prise en charge et limitations de Microsoft App-V
- Résolution des problèmes Citrix
Automatisation de l'interface utilisateur
Parfois, la routine manuelle habituelle n'est pas la méthode optimale d'automatisation. Explorez attentivement le comportement de l'application et l'intégration/les fonctionnalités d'UiPath avant d'opter pour une certaine méthode.
UI Automation est mieux utilisé lorsque les Robots et les applications s'exécutent sur la même machine, car UiPath peut s'intégrer directement à la technologie derrière l'application pour identifier les éléments, déclencher les événements et extraire les données en coulisse.
UiPath utilise trois méthodes pour déclencher une activité Cliquer (Click) ou Saisir dans (Type Into) dans une application. Celles-ci s'affichent en tant que propriétés dans toutes les activités se rapportant à UI Automation.
Les propriétés SimulateType et SimulateClick
Si les propriétés SimulateType ou SimulateClick sont sélectionnées, Studio se connecte à l'application et déclenche le gestionnaire d'événements d'un élément d'IU indiqué (bouton, zone de texte). Le résultat est toujours dépendant de la technologie cible, telle qu'un navigateur Web ou d'une application métier.
Il est fortement recommandé de vérifier l'état de l'élément d'IU cible avant l'exécution, lorsque vous activez SimulateType ou SimulateClick pour les activités suivantes :
La même recommandation doit s'appliquer pour les applications ci-dessous, car elles utilisent par défaut les propriétés SimulateType ou SimulateClick et ne sont pas modifiables :
La propriété AlterIfDisabled
La propriété indique à l’activité cible si oui ou non elle doit interagir avec les éléments désactivés. Veuillez noter que cette propriété n’est prise en compte que si le SimulateType ou le SimulateClick sont activés. Vous pouvez trouver la propriété AlterIfDisabled pour les activités suivantes :
La propriété SendWindowMessages
Si la propriété Envoyer des messages de la fenêtre (SendWindowMessages) est sélectionnée, Studio publie les détails de l'événement dans la boucle de messages de l'application, et la procédure de la fenêtre de l'application l'envoie à l'élément d'IU cible en interne.
Studio signale les pilotes système avec les événements matériels si aucune des options ci-dessus n'est sélectionnée et laisse le système d'exploitation envoyer les détails vers l'élément cible.
Ces méthodes doivent être testées dans l'ordre indiqué, car les propriétés SimulateClick et SendWindowMessages sont plus rapides et fonctionnent également en arrière-plan. Mais, elles dépendent essentiellement de la technologie derrière l'application.
Les événements matériels fonctionnent à 100 %, car Studio effectue des actions à la manière d'un opérateur humain, telles que déplacer le pointeur de la souris et cliquer à un emplacement spécifique. Dans ce cas, en revanche, l'application en cours d'automatisation doit s'afficher à l'écran. Cela peut être considéré comme un inconvénient, car il existe le risque que l'utilisateur interfère avec l'automatisation.
Parfois, les sélecteurs générés automatiquement proposent des valeurs d'attributs volatiles pour identifier les éléments. L'intervention manuelle est requise pour calibrer les sélecteurs. Un sélecteur fiable doit identifier correctement chaque fois le même élément dans tous les cas, dans les environnements de développement, de test et de production, quels que soient les noms d'utilisateurs connectés aux applications.
Voici des conseils sur la manière d'améliorer un sélecteur dans l'Éditeur de sélecteur (Selector Editor) ou dans UI Explorer (UI Explorer) :
- Remplacez les attributs avec des valeurs volatiles par des attributs qui semblent cohérents et significatifs.
- Remplacez des parties de variables d'une valeur d'attribut par des caractères génériques (*).
- Si la valeur d'un attribut est tout caractère générique (par exemple
name=’*’
), l'attribut doit être supprimé. - Si la modification des attributs ne résout pas le problème, essayez d'ajouter d'autres conteneurs intermédiaires.
-
Évitez d'utiliser l'attribut
idx
, sauf si sa valeur est un nombre très petit tel que 1 ou 2.
Dans le sélecteur ci-dessus, nous observons que le titre de la page possède une référence à l'heure d'enregistrement du sélecteur et également que des ID semblant aléatoires sont affectés à certains attributs. En modifiant les attributs, il est possible de trouver un meilleur sélecteur que l'enregistreur UiPath proposé.
Semblables aux chemins d'accès aux fichiers, les sélecteurs peuvent être complets ou partiels (relatifs). Les sélecteurs complets commencent par une fenêtre ou un identificateur HTML et possèdent toutes les informations nécessaires pour trouver un élément sur le bureau entier. Tandis que les sélecteurs partiels ne fonctionnent qu'à l'intérieur d'une liaison/d'un conteneur qui spécifie la fenêtre de niveau supérieur à laquelle les éléments appartiennent :
- Ouvrir le navigateur (OpenBrowser)
- Ouvrir l'application (OpenApplication)
- Lier à un navigateur (AttachBrowser)
- Lier à une fenêtre (AttachWindow)
Voici un peu plus d'informations sur la rubrique Sélecteurs complets ou partiels.
L'utilisation de conteneurs avec des sélecteurs partiels au lieu de sélecteurs complets présente de nombreux avantages :
- Regroupe visuellement les activités fonctionnant dans la même application.
- Est légèrement plus rapide, sans accéder chaque fois à la fenêtre supérieure.
- Facilite la gestion des sélecteurs de niveau supérieur au cas où des mises à jour manuelles seraient nécessaires.
- Essentiel en cas d'utilisation de deux instances de la même application.
La reconnaissance d'image est la dernière méthode d'automatisation des applications si rien d'autre ne fonctionne pour identifier les éléments d'IU à l'écran (tels que des sélecteurs ou des raccourcis clavier). Étant donné que la correspondance d'image requiert l'affichage complet des éléments à l'écran et que tous les détails visibles sont identiques aussi bien lors de l'exécution que du développement, vous devez être très vigilant pour garantir la fiabilité du processus lorsque vous utilisez l'automatisation de l'image. La sélection d'une partie plus/moins importante d'une image que nécessaire peut entraîner une image introuvable ou une correspondance de faux positif.
La correspondance d'image est sensible aux variations de l'environnement, telles que le thème de bureau ou la résolution d'écran. Lorsque l'application s'exécute dans Citrix, la résolution doit être maintenue supérieure ou égale à celle lors de l'enregistrement des workflows. Sinon, de légères déformations de l'image peuvent être compensées en diminuant légèrement le facteur de précision de l'image capturée. Vérifiez la manière dont la mise en page de l'application s'ajuste à des résolutions différentes pour garantir la proximité des éléments visuels, surtout dans le cas de techniques basées sur les cordonnées, telles que le clic relatif ou l'extraction relative.
Si l'automatisation prend en charge des résolutions différentes, des enregistrements en parallèle peuvent être placés à l'intérieur d'une activité Sélectionner la branche (PickBranch). Le Robot utilise l'une des deux correspondances.
Si OCR renvoie de bons résultats pour l'application, l'automatisation de texte est une bonne alternative à la réduction de l'influence de l'environnement. Le moteur Google Tesseract fonctionne mieux pour des zones plus petites, tandis que Microsoft MODI est plus adapté à de plus grandes zones.
L'utilisation du moteur MODI dans des boucles d'automatisation peut cependant parfois causer des fuites de mémoire. C'est la raison pour laquelle il est recommandé que l'extraction effectuée à l'aide de MODI soit invoquée via un workflow distinct, à l'aide de la propriété Isolé (Isolated).
Il est probable qu'un comportement inattendu se produise lorsque l'application n'est pas dans l'état que le workflow suppose. La première chose à examiner est le temps de réponse de l'application aux interactions du Robot.
La propriété Délai MS (DelayMS) permet d'attendre un moment que l'application réponde. Il existe des cas, cependant, où l'état de l'application doit être validé avant de passer à certaines étapes du processus. Les mesures peuvent inclure des activités supplémentaires qui attendent l'état souhaité de l'application avant d'autres interactions. Les activités pouvant être utiles incluent :
- Élément existe (Element Exists), Image existe (Image Exists), Texte existe (Text Exists), Texte OCR existe (OCR Text Exists).
- Rechercher un élément (Find Element), Rechercher une image (Find Image), Rechercher la position du texte (Find Text Position).
- Attendre que l'élément disparaisse (Wait Element Vanish), Attendre que l'image disparaisse (Wait Image Vanish).
- Attendre le texte d'écran (Wait Screen Text) (dans les terminaux).
Si une automatisation est conçue pour partager le bureau avec un humain, toute l'interaction de l'IU doit être implémentée en arrière-plan. Cela implique que l'automatisation doit gérer directement les objets d'éléments d'IU, permettant par la même de masquer ou de réduire la fenêtre de l'application durant le processus.
- Utilisez Simuler un type (SimulateType), Simuler un clic (SimulateClick) et Envoyer les options des messages de la fenêtre (SendWindowMessagesoptions) pour la navigation et la saisie des données via les activités Cliquer (Click) et Saisir dans (Type Into).
- Utilisez les activités Définir le texte (Set Text), Cocher (Check) et Sélectionner un élément (Select Item) pour la saisie des données en arrière-plan.
- Les activités Extraire le texte (Get Text), Extraire le texte complet (Get Full Text) et Extraction du contenu de sites Web (WebScraping) sont les sorties qui s'exécutent en arrière-plan.
- Utilisez l'activité Élément existe (Element Exists) pour vérifier l'état de l'application.