- Premiers pas avec Test Suite
- Studio
- Vue d'ensemble (Overview)
- Activités et API de test
- Architecture d’automatisation des appareils mobiles
- Démarrage
- Gérer le gestionnaire d'appareils mobiles
- Gérer les applications
- Créer des workflows d'automatisation mobile
- Interagir avec les appareils
- Débogage
- Journaux et chronologie d'exécution
- Scénarios de résolution des problèmes
- Automatisation pour les applications React Native
- Activités d'automatisation sur mobile
- Orchestrator
- Testing Robots
- Test Manager
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 '<capability name>' 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