- Vue d'ensemble (Overview)
- Automatisation de l'interface utilisateur
- Applications et technologies automatisées avec UI Automation
- Compatibilité du projet
- UI-ANA-016 - Extraire l'URL ouverte du navigateur
- UI-ANA-017 - ContinuerSurErreur (ContinueOnError) True
- UI-ANA-018 - Répertorier les activités d'OCR/d'image
- UI-DBP-006 - Utilisation du conteneur
- UI-DBP-013 - Utilisation abusive de l’automatisation Excel
- UI-DBP-030 - Utilisation de variables interdites dans les sélecteurs
- UI-PRR-001 - Simuler un clic
- UI-PRR-002 - Type de simulation
- UI-PRR-003 - Ouverture d'une utilisation abusive de l'application
- UI-PRR-004 - Délais codés en dur
- UI-REL-001 - Idx volumineux dans les sélecteurs
- UI-SEC-004 - Données d’e-mail du sélecteur
- UI-SEC-010 - Restrictions d'applications/d'URL
- UI-USG-011 - Attributs non autorisés
- UX-SEC-010 - Restrictions d'applications/d'URL
- UX-DBP-029 - Utilisation d'un mot de passe non sécurisé
- UI-PST-001 - Niveau du journal d'audit dans les paramètres du projet
- Outil de migration de navigateur UiPath
- Zone de détourage
- Enregistreur de Computer Vision
- Index des activités
- Activer (Activate)
- Base d'ancrage (Anchor Base)
- Lier à un navigateur (Attach Browser)
- Lier à une fenêtre (Attach Window)
- Block User Input
- Légende (Callout)
- Vérifier (Check)
- Cliquer (Click)
- Cliquer sur l'image (Click Image)
- Déclencheur de clic image (Click Image Trigger)
- Cliquer sur le texte OCR (Click OCR Text)
- Cliquer sur le texte (Click Text)
- Déclencheur de clic (Click Trigger)
- Fermer l'application (Close Application)
- Fermer l'onglet (Close Tab)
- Fermer la fenêtre (Close Window)
- Context Aware Anchor
- Copier le texte sélectionné (Copy Selected Text)
- Element Attribute Change Trigger
- Élément existant (Element Exists)
- Étendue de l'élément (Element Scope)
- Element State Change Trigger
- Export UI Tree
- Extraire les données structurées (Extract Structured Data)
- Rechercher les enfants (Find Children)
- Rechercher l'élément (Find Element)
- Rechercher l'image (Find Image)
- Rechercher les correspondances de l'image (Find Image Matches)
- Rechercher une position de texte OCR (Find OCR Text Position)
- Rechercher l'élément relatif (Find Relative Element)
- Rechercher la position du texte (Find Text Position)
- Obtenir la fenêtre active (Get Active Window)
- Obtenir l'ancêtre (Get Ancestor)
- Obtenir l'attribut (Get Attribute)
- Obtenir les infos de l'événement (Get Event Info)
- Récupérer du presse-papiers (Get From Clipboard)
- Obtenir le texte complet (Get Full Text)
- Obtenir le texte OCR (Get OCR Text)
- Récupérer le mot de passe (Get Password)
- Obtenir la position (Get Position)
- Obtenir l'élément source (Get Source Element)
- Obtenir le texte (Get Text)
- Obtenir le texte visible (Get Visible Text)
- Revenir en arrière (Go Back)
- Avancer (Go Forward)
- Accéder à l'accueil (Go Home)
- Google Cloud Vision OCR
- Masquer la fenêtre (Hide Window)
- Mettre en surbrillance (Highlight)
- Déclencheur de raccourci (Hotkey Trigger)
- Pointer (Hover)
- Pointer sur l'image (Hover Image)
- Pointer sur le texte OCR (Hover OCR Text)
- Pointer sur le texte (Hover Text)
- Image existante (Image Exists)
- Indiquer sur l'écran (Indicate On Screen)
- Injecter du code .NET
- Inject Js Script
- Invoquer la méthode ActiveX
- Déclencheur de pression de touche (Key Press Trigger)
- Charger l'image (Load Image)
- Agrandir la fenêtre (Maximize Window)
- Microsoft Azure ComputerVision OCR
- Reconnaissance optique des caractères Microsoft (Microsoft OCR)
- Microsoft Project Oxford Online OCR
- Réduire la fenêtre (Minimize Window)
- Surveiller les événements (Monitor Events)
- Déclencheur de souris (Mouse Trigger)
- Déplacer la fenêtre (Move Window)
- Accéder à (Navigate To)
- Texte OCR existant (OCR Text Exists)
- Sur affichage de l'élément (On Element Appear)
- Sur disparition de l'élément (On Element Vanish)
- Sur apparition de l'image (On Image Appear)
- Sur disparition de l'image (On Image Vanish)
- Ouvrir l'application (Open Application)
- Ouvrir le navigateur (Open Browser)
- Actualiser le navigateur (Refresh Browser)
- Relire l'événement utilisateur (Replay User Event)
- Restaurer la fenêtre (Restore Window)
- Enregistrer l'image (Save Image)
- Sélectionner l'élément (Select Item)
- Sélectionner plusieurs éléments (Select Multiple Items)
- Envoyer le raccourci (Send Hotkey)
- Définir la zone de détourage (Set Clipping Region)
- Définir le focus (Set Focus)
- Définir le texte (Set Text)
- Placer dans le presse-papiers (Set To Clipboard)
- Définir l'attribut Web (Set Web Attribute)
- Afficher la fenêtre (Show Window)
- Déclencher le processus (Start Process)
- Déclencheur système (System Trigger)
- Prendre une capture d'écran (Take Screenshot)
- Tesseract OCR
- Texte existant (Text Exists)
- Info-bulle
- Saisir dans (Type Into)
- Saisir un texte sécurisé (Type Secure Text)
- Utiliser le premier plan
- Attendre un attribut (Wait Attribute)
- Attendre que l'élément disparaisse (Wait Element Vanish)
- Attendre que l'image disparaisse (Wait Image Vanish)
- Application event trigger
- Check/Uncheck
- Check App State
- Check Element
- Cliquer (Click)
- Click Event Trigger
- Glisser et déposer
- Extract Table Data
- For Each UiElement
- Obtenir l'attribut (Get Attribute)
- Obtenir l'attribut (générique)
- Get Browser Data
- Obtenir le texte (Get Text)
- Get URL
- Go To URL
- Mettre en surbrillance (Highlight)
- Pointer (Hover)
- Inject Js Script
- Raccourcis clavier
- Keypress Event Trigger
- Mouse scroll
- Navigate Browser
- Sélectionner l'élément (Select Item)
- Set Browser Data
- Définir le navigateur du runtime (Set Runtime Browser)
- Définir le texte (Set Text)
- Prendre une capture d'écran (Take Screenshot)
- Saisir dans (Type Into)
- Use Application/Browser
- Joindre
- Vérifier (Check)
- Cliquer (Click)
- Glisser et déposer
- Extraire des données
- Obtenir l'attribut (Get Attribute)
- ObtenirEnfants
- ObtenirCibleRuntime
- GetText
- Get URL
- GoToUrl
- Mettre en surbrillance (Highlight)
- Pointer (Hover)
- IsEnabled
- Raccourci clavier
- Mouse scroll
- Ouvrir
- Sélectionner l'élément (Select Item)
- Prendre une capture d'écran (Take Screenshot)
- Saisir dans (Type Into)
- ÉtatAttente
- Effectuez une recherche par navigateur et récupérez les résultats à l'aide des API UI Automation
- Navigation sur le Web
- Rechercher des images
- Cliquer sur des images
- Déclencher et surveiller des événements
- Créer et remplacer des fichiers
- Pages HTML : extraire et manipuler des informations
- Manipulation des fenêtres
- Sélection de liste automatisée
- Rechercher et manipuler des éléments de fenêtre
- Gérer l'automatisation du texte
- Charger et traiter des images
- Gérer les actions activées par la souris
- Automatiser l'exécution des applications
- Exécution automatisée d'une application locale
- Navigation avec le navigateur
- Automatisation Web
- Exemple de fonctionnalités du déclencheur
- Activer la prise en charge d’UI Automation dans DevExpress
- Computer Vision Local Server
- Automatisation mobile
- Notes de publication
- About the mobile device automation architecture
- Gérer le gestionnaire d'appareils mobiles
- Gérer les applications
- Interagir avec les appareils
- Débogage
- Journaux et chronologie d'exécution
- Scénarios de résolution des problèmes
- Compatibilité du projet
- Get Log Types
- Get Logs
- Get Page Source
- Get Device Orientation
- Get Session Identifier
- Installer l'application
- Gérer l'application actuelle
- Gérer une autre application
- Ouvrir DeepLink
- Ouvrir l'URL
- Mobile Device Connection
- Balayer directionnel
- Dessiner un modèle
- Positional Swipe
- Press Hardware Button
- Set Device Orientation
- Prendre une capture d'écran (Take Screenshot)
- Prendre une partie de capture d'écran
- Élément existant (Element Exists)
- Execute Command
- Obtenir l'attribut (Get Attribute)
- Get Selected Item
- Obtenir le texte (Get Text)
- Set Selected Item
- Définir le texte (Set Text)
- Balayer
- Tap
- Saisir texte
- Terminal
- Notes de publication
- À propos du package d'activités Terminal
- Compatibilité du projet
- Meilleures pratiques
- Rechercher un texte (Find Text)
- Get Color At Position
- Obtenir la position du curseur (Get Cursor Position)
- Obtenir le champ (Get Field)
- Obtenir le champ en position (Get Field at Position)
- Accéder à la zone d'écran (Get Screen Area)
- Obtenir le texte (Get Text)
- Obtenir le texte en position (Get Text at Position)
- Déplacer le curseur (Move Cursor)
- Move Cursor to Text
- Envoyer la touche Contrôle (Send Control Key)
- Envoyer les touches (Send Keys)
- Envoyer les touches en toute sécurité (Send Keys Secure)
- Définir le champ (Set Field)
- Définir le champ en position (Set Field at Position)
- Session de terminal (Terminal Session)
- Attendre le texte de champ (Wait Field Text)
- Attendre le texte d'écran (Wait Screen Text)
- Attendre le texte en position (Wait Text at Position)

Activités UIAutomation
Scénarios de résolution des problèmes
Si vous rencontrez des problèmes, envisagez les scénarios de résolution de problèmes suivants :
Les rubriques ci-dessous décrivent les problèmes, et leurs solutions correspondantes, pour l'automatisation des appareils mobiles.
Description: le workflow dans Studio génère des erreurs inattendues et les packages d'activités n'affichent pas les versions installées.
Cause: dans votre projet, la version principale du package d'activité UI.Automation ne correspond pas à la version principale du package d'activité Mobile.Automation . Par exemple, la version principale du package UI.Automation installé est 22.10.x, et la version principale du package Mobile.Automation installée est la 22.4.x.
Solution: assurez-vous que les versions principales des packages d'activités UI.Automation et Mobile.Automation , installées dans votre projet, correspondent. Par exemple, associez UI.Automation.Activities version 22.10.x uniquement avec la version 22.10.x de Mobile.Automation.Activities.
Condition: lors de l'utilisation d' Appium 2.0.
/wd/hub/session
.
--base-path /wd/hub
.
Condition: lors de l'utilisation d' Appium 2.0.
Description: toutes les fonctionnalités non standard doivent avoir un préfixe de fournisseur.
appium:
pour toutes les capacités, comme suit :
- Dans l'invite de commande ou le terminal, au lieu de
--default-capabilities "{\"systemPort\": 8201}"
, saisissez--default-capabilities "{\"appium:systemPort\": 8201}"
. - Dans l'onglet Ajouter un appareil (Add a device) du Gestionnaire d'appareils mobiles (Mobile Device Manager), ajoutez manuellement le préfixe
appium:
avant le nom de toute fonctionnalité supplémentaire souhaitée.
Condition: lors de l'utilisation d' Appium 2.0.
automationName
ne peut pas être vide.
appium:
comme préfixe. Par exemple, appium:automationName
.
Condition: lors de l'utilisation d' Appium 2.0.
Description: impossible de trouver le pilote installé pour prendre en charge les majuscules données.
Appium 2.0 n'installe pas automatiquement les pilotes requis. Vous devez les télécharger séparément.
Solution: installez le pilote requis pour votre plate-forme.
- Pour les appareils Android, installez le pilote
uiautomator2
à l'aide de la commandeappium driver install uiautomator2
. - Pour les appareils iOS, installez le pilote
xcuitest
à l'aide de la commandeappium driver install xcuitest
.
Les rubriques suivantes décrivent certains problèmes rencontrés avec les appareils Android, ainsi que les solutions correspondantes.
InvalidArgumentException
causée par une différence dans le
format attendu d’une capacité. Le problème se pose lorsqu’une capacité est saisie sous la forme d’une
chaîne, alors qu’Appium attend une valeur booléenne. Un message d’erreur indicatif
inclura les éléments suivants :Failed to create session.
A new session could not be created.
Details: io.appium.uiautomator2.common.exceptions.InvalidArgumentException:
Invalid '' setting value type.
Got java.lang.String. Expected: java.lang.Boolean
Failed to create session.
A new session could not be created.
Details: io.appium.uiautomator2.common.exceptions.InvalidArgumentException:
Invalid '<capability name>' setting value type.
Got java.lang.String. Expected: java.lang.Boolean
Solution : désinstallez les applications suivantes de l’appareil local :
io.appium.uiautomator2.server
io.appium.uiautomator2.server.test
WebDriverException
. Cette erreur s’affiche généralement sous la forme suivante : Parameters were incorrect. We wanted {\"required\":[\"text\"]} and you sent [\"value\"]", "FaultCode":"WebDriverException"}
.
Solution : désinstallez votre version actuelle de UiAutomator 2. Installez ensuite une version plus récente, en utilisant les commandes suivantes dans l’ordre indiqué :
appium driver uninstall uiautomator2
appium driver install uiautomator2@2.29.0
, où les chiffres2.29.0
désignent la version que vous souhaitez installer. Vous pouvez remplacer cet indicateur par n’importe quelle version disponible.
npm install -g appium
(pour Appium 1.x) ou npm install -g appium@next
(pour Appium 2.0) échoue, car vous l'exécutez derrière un proxy. L'erreur génère le message suivant :
npm ERR! network This is a problem related to network connectivity.
npm ERR! network In most cases you are behind a proxy or have bad network settings.
npm ERR! network npm ERR! network If you are behind a proxy, please make sure that the npm ERR! network 'proxy' config is set properly.
See: 'npm help config'
npm ERR! network This is a problem related to network connectivity.
npm ERR! network In most cases you are behind a proxy or have bad network settings.
npm ERR! network npm ERR! network If you are behind a proxy, please make sure that the npm ERR! network 'proxy' config is set properly.
See: 'npm help config'
Solution : configurez npm (le gestionnaire des packages des nœuds) pour utiliser votre proxy. Suivez les étapes ci-dessous :
-
Récupérez l'adresse de votre serveur proxy et votre numéro de port :
- Accédez à Options Internet.
- Sélectionnez l'onglet Connexions .
-
Sélectionnez Paramètres LAN ( LAN settings) et copiez le contenu dans les champs Address(Adresse) et Port (Port).
-
Revenez à l'invite de commande Node.js et exécutez une commande qui suit le format ci-dessous :
- Pour les proxys HTTP :
npm config set http://your_proxy_address:your_port_number
. - Pour les proxys HTTPS :
npm config set https://your_proxy_address:your_port_number
.
- Pour les proxys HTTP :
- Exécutez à nouveau la commande
npm install -g appium
(pour Appium 1.x) ounpm install -g appium@next
(pour Appium 2.0).
Description : impossible d’accéder au contexte Web fourni. Assurez-vous qu’Android WebView peut être débogué. Consultez la page Débogage à distance des WebViews pour plus d’informations sur l’accès aux contextes Web.
Remèdes:
- Utilisez WebView en tant que sélecteurs natifs dans les contextes Web non reconnus.
- Si les sélecteurs fonctionnent sur les applications Web mais non sur une application native, l’application n’activera pas le débogage des WebViews. Dans ce cas, consultez la section Premier pas avec le débogage à distance des WebViews Android et Débogage à distance des WebViews.
Description: Périphérique non autorisé.
Solution: procédez comme suit :
- Utilisez la commande
adb devices
pour vérifier les appareils existants. - Révoquer le débogage sur le téléphone.
- Redémarrez le serveur ADB, en utilisant les commandes suivantes, dans cet ordre :
adb kill-server
, puisadb start-server
. - Reconnectez l'appareil et confirmez que vous acceptez la connexion sur cet appareil.
Description : l’appareil Android lance une automatisation de navigateur au lieu de l’application spécifiée, ce qui provoque des erreurs.
Solution: commencez plutôt par un navigateur Web.
Description: l'application Android que vous avez créée ne se lance pas dans le Gestionnaire d'appareils mobiles.
Solution :
- Survolez l'application et cliquez sur Modifier ( Edit).
- Ajoutez des informations sur l’application dans les champs Package d’ application et Activité de l’application.
Les rubriques ci-dessous décrivent les problèmes et les solutions correspondantes pour les appareils iOS.
Description : lorsque vous cliquez sur un élément WebView, le sélecteur ne fonctionne pas et vous ne pouvez pas automatiser l'élément.
Solution : utilisez des simulateurs avec la dernière version d'iOS et d'Appium 2.
Description: le périphérique physique iOS ne démarre pas.
Solution: procédez comme suit :
- Assurez-vous que votre appareil a approuvé le certificat. Sur votre appareil, accédez à Paramètres (Settings) > Général (General) > Profils et gestion des appareils (Profiles & Device Management), appuyez sur l'entrée d'e-mail (par exemple, Développement Apple : nomutilisateur@email.com), puis approuvez le certificat. Si l'appareil utilise votre compte d'entreprise, cela ne sera pas nécessaire.
- Si vous obtenez une erreur indiquant que le port 8100 n'est pas accessible, fermez Appium (
ctrl + c
), puis redémarrez-le. - Si vous obtenez une autre erreur, consultez la page Appium XCUITest Driver Real Device Setup.
Description: l'appareil iOS 16.0 ne démarre pas ou ne se connecte pas.
Solution : installez et utilisez Appium 2.0au lieu d'Appium 1. Consultez la section Prérequis de l'appareil iOS local pour plus d'informations sur l'installation et la gestion d'Appium 2.0.
Description: iOS 12.4.5 ne fonctionne pas comme prévu lorsqu'il est associé à Appium 1.22.3.
Cause: cela est dû à un problème avec Appium.
Solution: choisissez l'une des options ci-dessous :
- Utilisez une version antérieure d'Appium, telle que 1.17.0.
- Mettez à niveau l'appareil vers des versions égales ou supérieures à iOS 14.
- Automatisation des appareils mobiles
- Workflow et activités générant des erreurs
- Aucune route trouvée pour wd/hub/session
- Préfixe du fournisseur requis pour toutes les fonctionnalités non standard
- Le nom de l'automatisation ne peut pas être vide
- Impossible de trouver le pilote installé
- Android
- Échec de la connexion en raison de l’exception
InvalidArgumentException
pour les capacités - Échec de l’activité en raison d’une exception
WebDriverException
- L’installation d’Appium échoue en raison de la présence d’un proxy
- Impossible d'accéder au contexte Web fourni.
- Appareil non autorisé
- Automatisation du navigateur lors du démarrage à partir de l’écran de lancement
- L'application Android ne démarre pas
- iOS
- Impossible de cliquer sur les éléments WebView sous iOS 13
- L'appareil physique iOS ne démarre pas
- L'appareil iOS 16.0 ne démarre pas
- Dysfonctionnements d’iOS 12.4.5