Cloud Flow ou Desktop Flow ? La décision en 5 questions
Cloud Flow ou Desktop Flow ? Voici comment décider dans Power Automate lorsqu'un ERP historique sans API est en jeu.
Pourquoi les sélecteurs se cassent dans Power Automate Desktop, comment les construire de façon robuste et comment utiliser les actions Wait pour de vrais temps d'attente au lieu de pauses fixes.
Quand une automatisation d'interface construite avec Power Automate Desktop (PAD) échoue soudainement avec « Failed to get UI element » après des semaines en production, ce n'est presque jamais un hasard. La plupart du temps, quelque chose a changé en arrière-plan que le sélecteur ne retrouve plus : une mise à jour de l'application, une résolution d'écran différente, une fenêtre qui met désormais une seconde de plus à s'ouvrir. Ce sont précisément ces deux leviers, des sélecteurs robustes et des temps d'attente propres, qui déterminent si un flux tourne de façon stable pendant des mois en mode sans surveillance ou doit être réparé manuellement tous les quelques jours.
Ce guide vous montre comment les sélecteurs sont construits dans PAD, quels opérateurs et variables les rendent dynamiques, et comment remplacer les pauses fixes par une véritable synchronisation grâce aux bonnes actions Wait. À la fin, vous trouverez une checklist pour protéger vos flux existants contre les causes d'échec les plus fréquentes.
Un sélecteur dans Power Automate Desktop décrit précisément où se trouve un élément d'interface dans la hiérarchie d'une application ou d'une page web. Selon Microsoft, les sélecteurs sont créés lorsque PAD capture des propriétés comme le nom, la classe ou l'ID d'automatisation, ainsi que la position de l'élément dans la structure de l'interface. C'est justement cette capture qui rend les sélecteurs sensibles aux changements. Microsoft cite dans le guide de dépannage des flux de bureau sans surveillance notamment les facteurs suivants, qui peuvent invalider un sélecteur qui fonctionnait auparavant :
Qui sait à quels endroits un sélecteur se casse habituellement peut le construire dès le départ pour résister à ces variations, plutôt que de réagir seulement après le premier échec.
Un sélecteur se compose de plusieurs niveaux enchaînés par le caractère >. Chaque niveau décrit un élément avec ses attributs sous la forme element[Attribut1="Wert1"][Attribut2="Wert2"]. Un exemple simple issu de la documentation sur la création d'une sélection personnalisée montre une fenêtre d'éditeur : :desktop > window[Name="Notizen.txt - Editor"][Process="Notepad"]. Le premier niveau commence toujours par l'élément racine :desktop, chaque niveau suivant étant l'enfant du précédent.
L'opérateur par défaut Égal recherche une valeur exacte et figée. Cela fonctionne de manière fiable pour les applications statiques, mais devient rapidement problématique dès que les titres de fenêtre changent dynamiquement, par exemple via un nom de fichier ou un horodatage dans le titre. Power Automate propose pour cela cinq autres opérateurs :
Un titre de fenêtre comme « Notizen.txt - Editor (2) » peut être capturé de façon bien plus robuste avec Commence par qu'avec Égal, car le chiffre entre parenthèses à la fin peut varier sans casser le sélecteur.
Si la valeur d'un attribut dépend d'une action précédente, par exemple un nom de fichier connu seulement à l'exécution, vous pouvez insérer une variable dans le sélecteur avec la notation pourcentage, par exemple :desktop > window[Name="%WindowName%"][Process="Notepad"]. Le sélecteur reste ainsi valide même si la valeur attendue change d'une exécution à l'autre.
Un même élément d'interface peut posséder plusieurs sélecteurs dans PAD. Si le premier échoue, Power Automate passe automatiquement au suivant dans l'ordre défini, sans étape supplémentaire à programmer dans votre flux. Grâce au bouton Sélection avec nouvelle capture ou en copiant un sélecteur existant, vous pouvez créer des variantes supplémentaires, par exemple une avec Égal pour le cas normal et une avec Contient ou Regex comme niveau de repli.
Pour les interfaces particulièrement instables, comme les sessions de terminal ou les applications héritées sans hiérarchie d'interface propre, Microsoft recommande dans le même guide un repli sur image, où PAD s'appuie sur la reconnaissance d'image plutôt que sur les attributs d'interface lorsqu'aucun sélecteur classique ne fonctionne plus.
Les actions « Wait » fixes avec un nombre de secondes défini sont une cause fréquente de flux qui tournent inutilement lentement ou qui accèdent quand même trop tôt à un élément. Power Automate Desktop propose pour cela des actions de synchronisation dédiées, qui attendent l'état réel de l'application plutôt que de laisser passer aveuglément une durée fixe.
Les trois actions peuvent être configurées pour échouer avec une erreur de délai d'attente après un temps défini, plutôt que d'attendre indéfiniment. C'est important pour les flux sans surveillance, afin qu'une fenêtre bloquée n'immobilise pas l'ensemble de l'exécution, mais passe de façon contrôlée dans la gestion des erreurs.
Avant qu'un flux ne passe en fonctionnement sans surveillance, il vaut la peine de tester chaque sélecteur critique directement dans le Selector Builder. Si un sélecteur se casse quand même, la fonction « Réparer le sélecteur » offre une aide rapide : vous recapturez l'élément par Ctrl+clic gauche, PAD compare l'ancienne structure avec la nouvelle et propose une sélection réparée, que vous pouvez encore vérifier avant de l'accepter. Si un sélecteur contient des variables, la réparation automatique ne fonctionne pas selon Microsoft, seule reste alors l'adaptation manuelle dans l'éditeur de texte du Selector Builder.
Pour les flux destinés à tourner durablement sans surveillance, Microsoft résume plusieurs recommandations qui ont fait leurs preuves dans la pratique :
Avec cette combinaison de sélecteurs robustes et de véritables conditions d'attente, un flux tombe bien plus rarement dans le vide. Vous gardez le contrôle du déroulement, car chaque action ne démarre que lorsque l'application est réellement prête, plutôt que de se lancer au petit bonheur après un temps d'attente estimé. Quiconque utilise Power Automate Desktop de façon productive à plus grande échelle devrait intégrer ces mesures de stabilité dès le départ, par exemple dans le cadre de projets d'automatisation accompagnés, plutôt que de les rattraper après les premières pannes nocturnes.
Un temps d'attente fixe ne fait qu'estimer combien de temps une application a besoin, sans réagir à son état réel. Si l'application est plus rapide, le flux perd du temps inutilement ; si elle est plus lente, par exemple à cause de la charge réseau ou d'un serveur lent, l'action suivante tente d'accéder à un élément qui n'est pas encore là. Des actions comme Attendre le contenu de la fenêtre ou Attendre une fenêtre vérifient au contraire l'état réel de l'application et ne poursuivent que lorsque la condition est réellement remplie.
Attendre une fenêtre concerne la fenêtre dans son ensemble, c'est-à-dire si elle s'ouvre, se ferme, obtient le focus ou le perd. Attendre le contenu de la fenêtre va un niveau plus loin et vérifie si, à l'intérieur d'une fenêtre déjà ouverte, un texte précis ou un élément d'interface précis apparaît, disparaît ou change d'état activé ou désactivé. En pratique, vous combinez souvent les deux : d'abord attendre la fenêtre, puis le contenu concret.
Il n'y a pas de nombre fixe, mais Microsoft recommande explicitement d'enregistrer plusieurs sélecteurs par élément afin qu'un mécanisme de repli intervienne si le premier échoue. En pratique, deux à trois variantes suffisent pour la plupart des éléments, par exemple une avec Égal pour le cas normal, une avec Contient ou Regex comme niveau de repli, et pour des interfaces particulièrement instables, un repli sur image supplémentaire.
Non. Selon la documentation Microsoft, la fonction de réparation automatique ne fonctionne pas pour les sélecteurs contenant une ou plusieurs variables. Dans ce cas, vous devez soit remplacer temporairement les variables par des valeurs statiques pour utiliser la réparation, soit ajuster le sélecteur directement à la main dans l'éditeur de texte du Selector Builder.
Si même un sélecteur réparé avec plusieurs niveaux de repli ne tourne pas de façon stable, passer au repli sur image ou à l'automatisation de surface avec des actions de souris, de clavier et d'OCR aide souvent, selon Microsoft, en particulier pour les applications sans hiérarchie d'interface propre, par exemple dans des environnements de bureau virtuel. Il vaut également la peine d'examiner la cause sous-jacente : il s'agit souvent d'une différence de résolution d'écran, de mise à l'échelle DPI ou de mode de fenêtre entre l'environnement de développement et la machine cible sans surveillance.
Fondateur de NordFlux. Sept ans d'expérience, du web et du SEO jusqu'à l'automatisation à l'échelle d'un groupe, aujourd'hui pragmatique pour les PME et avec une souveraineté des données allemande.
Certifications
Cloud Flow ou Desktop Flow ? Voici comment décider dans Power Automate lorsqu'un ERP historique sans API est en jeu.
Le Recorder dans Power Automate Desktop enregistre les clics sous forme d'actions de flux. Ce qu'il peut faire, comment UIA et MSAA fonctionnent, et où il atteint ses limites.
Copilot dans Power Automate for Desktop crée, complète et répare des flux de bureau à partir d'un prompt, avec encore des limitations de région et de langue.
Les pauses fixes et les sélecteurs fragiles sont la cause la plus fréquente des échecs nocturnes de flows de bureau non surveillés. Nous construisons vos sélecteurs avec des stratégies de repli et de véritables conditions d'attente, pour que vos flows fonctionnent de manière fiable même quand les interfaces changent. Sur demande, nous assurons ensuite aussi l'exploitation continue et le dépannage.