Comment puis-je obtenir le parent d'une vue en utilisant uiautomator?
Je vais essayer d'identifier la vue parent d'un élément de l'interface utilisateur afin que je puisse naviguer dans l'INTERFACE utilisateur librement.
Par exemple, dans l'application Paramètres, je peux trouver de la vue avec le texte "Bluetooth":
UiObject btView = new UiObject(new UiSelector().text("Bluetooth"));
Maintenant, la partie où j'ai coincé est celui-ci: je veux naviguer sur deux niveaux et commencer une nouvelle recherche pour le bouton on/off qui permet d'activer ou désactiver bluetooth.
Note: je peux obtenir sur le bouton si j'utilise le code ci-dessous.
UiObject btButtonView = new UiObject(new UiSelector().className("android.widget.Switch").instance(1));
Cette recherche pour les boutons, et renvoie à la deuxième rencontre. Je veux de la recherche pour être plus précis et recherchez le bouton dans le linéaire de la mise en page qui contient le "Bluetooth" du texte.
Mise à JOUR:
C'est la mise en page de l'application des Paramètres (le Bluetooth de la partie dont j'ai besoin):
LinearLayout
LinearLayout
ImageView
RelativeLayout
TextView (with text = "Bluetooth")
Switch ()
source d'informationauteur Gabriel Porumb
Vous devez vous connecter pour publier un commentaire.
Vous devez trouver le UiObject deux niveaux, d'abord à l'aide du texte. Cela peut être fait à l'aide de la
getChildByText()
méthodes de UiCollection ou UiScrollable. Ensuite, vous pouvez facilement trouver l'interrupteur. Pour les 'Paramètres' ce code fonctionne sur mon appareil:Code ci-dessous fonctionne pour moi.
Si vous voulez la recherche juste pour le curseur marche/ARRÊT -> Vous pouvez rechercher directement bluetooth on/OFF SUR le bouton et cliquez sur on pour activer/désactiver bluetooth -
Vous pouvez vérifier capture d'écran de la bluetooth de la page(à l'aide de la commande - uiautomatorviewer) dans l'invite de commandes et de voir que le bouton OFF de la aura un texte dans le/SUR le curseur. Il suffit ensuite d'utiliser -
récemment découvert que nous pouvions utiliser getFromParent (pour UiObject) et fromParent (pour UiSelector) pour sélectionner un oncle de l'objet par exemple.
Si nous avons une telle mise en page:
nous avons pu obtenir une case à cocher de la textview avec ce code:
où TextViewTitle est un Uiobject avec la vue du texte