- Notes de publication
- Démarrage
- Paramétrage et configuration
- Projets d'automatisation
- À propos de la publication de projets d'automatisation
- Conception d'automatisations
- Gérer les package d’activités
- Configuration des paramètres du projet d'activité
- Signature de paquets
- Gouvernance
- Import des entités
- Modern Design Experience
- Lier un projet à une idée dans Automation Hub
- Utilisation du gestionnaire de données
- Dépendances
- Types de workflows
- Flux de contrôle
- Comparaison de fichiers
- Meilleures pratiques d'automatisation
- Conception de workflow
- Automatisation de l'interface utilisateur
- Organisation du projet
- Cycle de vie d'automatisation
- Méthodologie de réutilisation des composants de l'interface utilisateur
- Intégration du contrôle de code source
- À propos du contrôle de version
- Gestion de projets à l'aide de TFS
- Gestion de projets à l'aide de SVN
- Diff de workflow
- Débogage
- Journalisation
- 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-NMG-017 : le nom de la classe correspond à l’espace de noms par défaut
- ST-DBP-002 - Nombre élevé d'arguments
- ST-DBP-003 - Bloc d'interception vide
- ST-DBP-007 - Plusieurs couches de l'organigramme
- ST-DPB-010 : plusieurs instances de [workflow] ou [cas de test]
- ST-DBP-020 - Propriétés de sortie non définies
- ST-DBP-021 - Délai d'expiration codé en dur
- 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
- ST-USG-027 - Balises requises
- ST-USG-034 – URL Automation Hub
- Variables
- Arguments
- Noms d'espace importés
- Automatisations codées
- Introduction
- Enregistrement de services personnalisés
- Contextes Avant (Before) et Après (After)
- Génération du code
- Génération de cas de test codé à partir de cas de test manuels
- Automatisation Attended basée sur déclencheur
- 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
- 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 VMware Horizon
- Automatisation de Salesforce
- Automatisation SAP
- macOS UI Automation
- Outil ScreenScrapeJavaSupport
- Protocole Webdriver
- Extensions
- À propos des extensions
- Outil SetupExtensions
- UiPathRemoteRuntime.exe n'est pas en cours d'exécution dans la session distante
- UiPath Remote Runtime bloque la fermeture de la session Citrix
- UiPath Remote Runtime provoque une fuite de mémoire
- Les packages UiPath.UIAutomation.Activities ne correspondent pas aux versions d'UiPath Remote Runtime
- L'extension UiPath requise n'est pas installée sur la machine distante
- Paramètres de résolution d’écran
- Stratégies de groupe Chrome
- Impossible de communiquer avec le navigateur
- L’extension Chrome est automatiquement supprimée
- L'extension a peut-être été corrompue
- Vérification de l'installation et de l'activation de l'extension pour Chrome
- Vérifiez si ChromeNativeMessaging.exe est en cours d’exécution
- Vérifier si la variable ComSpec est correctement définie
- Activez l’accès aux URL de fichiers et au mode navigation privée
- Profils de navigateur multiples
- Group Policy conflict
- Problèmes connus spécifiques aux extensions MV3
- Liste des extensions pour Chrome
- Extension Chrome sur Mac
- Stratégies de groupe Edge
- Impossible de communiquer avec le navigateur
- L’extension Edge est automatiquement supprimée
- L'extension a peut-être été corrompue
- Vérification si l'extension pour Microsoft Edge est installée et activée
- Vérifiez si ChromeNativeMessaging.exe est en cours d’exécution
- Vérifier si la variable ComSpec est correctement définie
- Activation de l'accès aux URL de fichiers et au mode navigation privée
- Profils de navigateur multiples
- Group Policy conflict
- Problèmes connus spécifiques aux extensions MV3
- Liste des extensions pour Edge
- Extension pour Safari
- Extension pour VMware Horizon
- Extension pour Amazon WorkSpaces
- Plug-in du gestionnaire de solution SAP
- Complément Excel
- Suite de tests - Studio
- 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
- La validation des projets volumineux hérités depuis Windows prend plus de temps que prévu
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.
Comment exécuter l'automatisation Chrome/Edge/Firefox en mode incrustation d'image sans interrompre votre travail dans la session principale
Lorsque vous exécutez une automatisation Web avec les navigateurs Chrome/Edge/Firefox dans la session enfant d'un mode incrustation d'image (PiP) et que vous souhaitez continuer à utiliser le navigateur dans la session principale, sachez que Chrome et Edge ne peuvent pas être lancés simultanément, dans des sessions différentes, tout en utilisant le même répertoire de données utilisateur.
%LOCALAPPDATA%\Google\Chrome\User Data
. Les données de vos profils de navigateur sont conservées ici, et chaque nouveau profil de navigateur que vous créez dispose de son propre espace : historique de navigation, signets et cookies.
chrome.exe --user-data-dir=c:\foo
. Toutes vos données de profil seront conservées dans ce dossier personnalisé.
Pour contourner cette limitation, les activités modernes UtiliserNavigateurApplications (UseApplicationBrowser) et classiques OuvrirNavigateur (OpenBrowser) fournissent une solution prête à l'emploi : les propriétés ModeDossierDonnéesUtilisateur (UserDataFolderMode) et CheminDossierDonnéesUtilisateur (UserDataFolderPath) qui indiquent à l'activité de lancer le navigateur avec son dossier par défaut, celui généré automatiquement par l'activité, ou une valeur personnalisée, spécifiée par la dernière propriété.
Examinons de plus près le fonctionnement de ces propriétés.
Incident n° 1
Vous ne voulez pas connaître tous les détails du dossier de données utilisateur, vous voulez simplement que l'automatisation lance le navigateur dans PiP et fasse son travail, vous permettant de faire votre propre travail dans la session principale. Ensuite, laissez ModeDossierDonnéesUtilisateur (UserDataFolderMode) vide. Sa valeur par défaut sera héritée en mode Automatique (Automatic) dans la section Paramètres du projet/NavigateurApplication (Project Settings/ApplicationBrowser) : le robot créera automatiquement pour vous un dossier/profil de données temporaire pour exécuter l'automatisation en mode incrustation d'image.
Incident n° 2
Vous souhaitez exécuter l'automatisation en mode incrustation d'image avec le dossier de données utilisateur par défaut, car il contient votre profil par défaut ainsi que l'historique de connexion et les cookies de l'ensemble de vos applications métier. Définissez ModeDossierDonnéesUtilisateur (UserDataFolderMode) sur DossierParDéfaut (DefaultFolder). Gardez à l'esprit que le simple lancement du navigateur dans votre session de travail n'est pas possible tant que l'automatisation en mode incrustation d'image n'est pas terminée et/ou que le navigateur en mode incrustation d'image ne s'arrête pas.
Incident n° 3
Vous savez ce que vous faites et vous comprenez à la fois les limitations du navigateur et les capacités fournies par UiPath. Définissez ModeDossierDonnéesUtilisateur (UserDataFolderMode) sur DossierPersonnalisé (CustomFolder) et définissez CheminDossierDonnéesUtilisateur (UserDataFolderPath) sur le chemin d'accès de votre choix.
Pour tous les cas ci-dessus, nous vous recommandons d'installer l'extension via une stratégie de groupe. De cette façon, l'extension est disponible et activée pour tous les profils de navigateur, qu'ils soient créés dans des dossiers de données utilisateur par défaut ou personnalisés.
- Automatisation de poste de travail
- Méthodes de saisie
- Sélecteurs
- Conteneurs
- Automatisation de l'image
- Considérations de résolution
- Moteurs OCR
- Synchronisation de l'IU
- Automatisation en arrière-plan
- Procédures
- Comment exécuter l'automatisation Chrome/Edge/Firefox en mode incrustation d'image sans interrompre votre travail dans la session principale