Erreur en utilisant UIAutomatorviewer pour les tests de l'application pour Android dans Appium
J'ai pour automatiser une application Android, je suis en train de faire la même chose par le Appium. Le problème, je suis confronté est après le lancement de la Appium serveur, l'application s'installe dans l'émulateur 4.4.2 et d'inspecter l'élément, je suis en utilisant UIAutomatorviewer qui vient par défaut avec le SDK. Mais lors de l'inspection de l'élément de l'application, j'obtiens l'erreur![entrez la description de l'image ici][1]
Error obtaining UI hierarchy
Reason:Error while obtaining UI hierarchy XML file.com.android.ddmlb.SynchException.Remote object doesn't exist.
J'ai essayé de trouver la solution pour que je puisse inspecter l'élément, de sorte que je peux script, mais en vain.
- Quelqu'un peut s'il vous plaît dites comment résoudre le problème afin que je puisse inspecter les éléments?
- Est-il un autre moyen que je peux inspecter l'élément dans l'application en dehors de l'aide UIAutomator spectateur?
Vous devez vous connecter pour publier un commentaire.
Après mon rendez-vous avec le uiautomator spectateur je suis venu pour savoir que nous obtenons l'erreur uniquement lorsque:
appium serveur est en cours d'exécution et nous essayons de capturer la capture d'écran à l'aide de uiautomatorviewer.
Donc, chaque fois que vous souhaitez utiliser uiautomatorviewer assurez-vous que le serveur est dans l'état arrêté.
taskkill /F /IM node.exe
(avertissement: ne tuer tous les serveurs de nœuds). Cependant, pour le cas où aucune Appium serveur est en cours d'exécution, la réponse ci-dessous ont mieux fonctionné pour moi: stackoverflow.com/a/28526871/682912J'ai résolu le même problème en utilisant l'une des méthodes suivantes.
(1) Connectez votre appareil Android à votre machines de développement;
(2) Aller à la ligne de commande dans le terminal ou à DOS de la ligne de commande pour Windows;
(3) à l'Aide de "adb shell" dans vos appareils Android;
(4) Modifier l'utilisateur à la racine par l'entrée "su root" dans la ligne de commande;
(5) Modifier le droit d'accès à /data/local/tmp par l'entrée "chmod 777 /data/local/tmp";
(6) revenir à uiautomatorviewer et faire de capture d'écran à nouveau, l'erreur devrait avoir disparu;
Je pense qu'il y a certains fichier ne peut pas être l'accès si ce n'est pas propre droit dans /data/local/tmp.
Assurez-vous tout sur votre écran est statique. Et clignote curseur de saisie est également interdit. Toute la peinture actions arrêt uiautomator de dumping actuel de l'INTERFACE utilisateur.
Vous pouvez le tester en utilisant la suite de la bad commande:
si le message
ERROR: could not get idle state.
s'affiche, vous souffrez de ce problème.Voir les lignes de 87 & 101 de
DumpCommand
:Solution la plus simple..
Redémarrer l'appareil. Redémarrez uiautomatorviewer.
A fonctionné comme un charme pour moi .... 😛
Arrêter le Appium Serveur. Puis essayez à nouveau. Elle fonctionne.
Réponse à votre question #2
Vous pouvez inspecter l'application Android directement à partir de votre véritable appareil Android.
Vous avez besoin de:
Veuillez voir ici:
Démarrer l'application que vous souhaitez inspecter votre appareil Android
Ouvrir le navigateur Chrome sur votre ordinateur portable/de bureau et faites un clic droit -> Plus d'Outils -> Inspecter les appareils -> Cliquez sur votre appareil -> (Cliquez sur un appareil Android
OK
à autoriser) -> Cliquez surInspect
Veuillez voir ici:
Que c'est. Espérons que cela aide!
J'ai eu le même problème parce que j'ai utilisé "adbd d'insécurité". Donc j'ai juste désactivé "adbd d'insécurité", et de recharger uiautomatorviewer, tout est OK.
En cas de enraciné appareils: Permettre l'accès à la racine dans options pour les développeurs pour la bad. Le redémarrage de la bad en tant que root
J'ai passé plus d'une semaine pour résoudre ce problème. Lorsque vous connectez votre appareil à l'aide de l'ASM 3.0, lorsque l'écran est ouvert projetée de la UIAutomator pour récupérer l'écran android. Sans Appium il doit capturer. Pour utiliser la version d'Android Studio au lieu du kit sdk d'android. Désinstaller et réinstaller Android Studio. C'est le travail parfait pour moi maintenant.
J'ai eu également le même problème (même si Appium Serveur n'était pas en cours d'exécution). Après le commutateur on /OFF SUR USB Débogage de travail pour moi.
Je l'ai résolu
J'ai fermé la Appium Serveur qui tourne sur ma machine, et l'a ouvert à nouveau.
Plus tard, l'open uiautomater, et il a travaillé pour moi
nous avons pour utiliser l'appareil qui a de l'API de niveau plus qu'17 ou jelly bean
Moyen de contourner le message d'ERREUR:
En utilisant uiautomator pour obtenir uix et capture d'écran.
vous avez besoin pour créer le uiautomator pot et de le pousser à /data/local/tmp
utilisation ce tutoriel sur la façon d'utiliser uiautomator
après que vous obtenez des fichiers il suffit de les ouvrir dans uiautomatorviewer
Ce qui a fonctionné pour moi:
arrêter appium
ouvrir un émulateur de périphérique (testé avec Android 7.1.1)
allez dans paramètres > options pour les développeurs > Activer l'affichage de l'attribut de l'inspection
ouvrir un shell sur l'ordinateur, cmd ou terminal selon votre système d'exploitation
entrez les commandes suivantes:
la commande adb shell
su
cd /data
cd /local
chmod 777 tmp
commencer uiautomatorviewer
prendre un xml capture d'écran
"su chmod 777 /data/local/tmp" n'a pas fonctionné pour moi, donc j'ai foré vers le bas et cela a fonctionné.
Je suppose que vous avez pour ce faire, dans un émulateur et pas un périphérique physique, sauf si l'appareil est enracinée. \ _ (ツ)_/
Lotsa Chance!
Cela se produit parce que la bad est en utilisant le port et il est bloqué par appium serveur.
J'ai trouvé la meilleure solution pour cela
Tuer le adb.exe à partir de la barre des tâches de processus et essayez de lancer uiautomatorviewer nouveau
Vérifiez si vous avez activé sous "options pour les développeurs" dans le téléphone.
Le seul qui fonctionne est dans cette voie:
Collez ceci dans votre terminal et il sera exécuté automator qui fonctionne
1) d'arrêter de appium Serveur
2) ouvrir un émulateur de périphérique
3) allez dans paramètres > options pour les développeurs > Activer l'affichage de l'attribut de l'inspection
4) options pour les développeurs dans l'invisible? Allez dans paramètres > Appuyez sur à Propos de l'appareil/téléphone > faites Défiler vers le bas jusqu'à la dernière option(numéro de Build) > Continuellement Appuyez sur "numéro de Build" pour 7 fois > vous devriez obtenir un Toast message "Vous êtes un développeur" > revenir à partir de l'écran > Aller dans paramètres > Maintenant, vous devriez voir les options pour les développeurs Appuyez sur le > Activer l'affichage de l'attribut de l'inspection
5) Vous devez ne plus recevoir ce message d'erreur
essayez d'Éteindre puis SUR l'option de débogage USB.. ce travail pour moi