Tutorial de UIAutomatorViewer: Inspector de Android Pruebas
โก Resumen inteligente
UIAutomatorViewer es un inspector grรกfico incluido con el Android SDK que captura una captura de pantalla del dispositivo, renderiza la jerarquรญa de vistas y expone los atributos. Appium Necesita localizar botones, campos y etiquetas de forma fiable.
ยฟQuรฉ es UIAutomatorViewer?
UIAutomatorViewer es una herramienta GUI para escanear y analizar los componentes de la interfaz de usuario de un Android aplicaciรณn. Para automatizar cualquier Android aplicaciรณn usando Appium, un usuario necesita identificar los objetos en la AUT (Aplicaciรณn bajo prueba). Con UIAutomatorViewer puede inspeccionar la interfaz de usuario de una Android Aplicaciรณn para averiguar la jerarquรญa y ver diferentes propiedades (id, textoโฆ) del elemento.
Mientras ejecuta scripts de automatizaciรณn, Appium Utiliza UIAutomatorViewer para identificar las distintas propiedades del objeto y, a partir de ellas, identificar el objeto deseado. Esta idea โleer el atributo en el inspector y reutilizarlo como localizador en el scriptโ es la que se explica en detalle en el resto de esta pรกgina.
La captura de pantalla que aparece a continuaciรณn muestra la herramienta en su estado de funcionamiento normal: la pantalla del dispositivo capturada a la izquierda, el รกrbol de nodos en la parte superior derecha y la hoja de propiedades del nodo seleccionado debajo.
Requisitos previos para usar UIAutomatorViewer
El inspector lee la pantalla en tiempo real de un telรฉfono real o un emulador, por lo que es necesario realizar una pequeรฑa configuraciรณn antes de que la ventana muestre algo.
- A Java Kit de desarrollo: uiautomatorviewer es un Java La aplicaciรณn de escritorio se inicia mediante un script por lotes, por lo que es necesario tener instalado un JDK y que este sea accesible en la ruta del sistema.
- El Android SDK: El visor se incluye dentro del SDK. carpeta, por lo que el SDK debe instalarse antes de que el lanzador exista en el disco.
- Herramientas de plataforma y adb: El espectador habla con el dispositivo a travรฉs del Android Debug Bridge, asรญ que adb Debe estar instalado y poder ver el telรฉfono.
- Opciones para desarrolladores y depuraciรณn USB: Ambas opciones deben estar activadas en la configuraciรณn del dispositivo; de lo contrario, adb nunca mostrarรก el dispositivo en la lista.
- Un cable USB con capacidad de transferencia de datos y un controlador: un cable solo de carga o un controlador del fabricante faltante en Windows, produce una lista de dispositivos vacรญa.
- La aplicaciรณn bajo prueba: La aplicaciรณn debe estar instalada y abierta en el dispositivo, ya que el inspector captura todo lo que se muestra en la pantalla.
Una vez configurados esos seis elementos, el paso de descarga es breve.
Cรณmo descargar e instalar UIAutomatorViewer
UIAutomatorViewer forma parte de Android Administrador de SDK y estarรก accesible una vez que instale el administrador de SDK. Descargue e instale el Android SDK de el oficial Android Studio Pรกgina de descarga.
Una vez que la Android El SDK estรก instalado, navegue por esta ruta:
c:\users\<username>\AppData\Local\Android\sdk\tools
Observarรก un archivo por lotes con este nombre:
uiautomatorviewer.bat
Double Haz clic en รฉl para abrir la interfaz grรกfica de usuario de UIAutomatorViewer. La lista de carpetas se ve como la que aparece a continuaciรณn, con el archivo por lotes junto a las demรกs herramientas del SDK.
โ ๏ธ Nota de versiรณn: AndroidLa propia documentaciรณn heredada de UI Automator todavรญa describe el lanzamiento de la herramienta desde /herramientas/pero el obsoleto independiente Android Herramientas SDK El paquete ya no se ofrece a travรฉs del SDK Manager en la versiรณn actual. Android Studio versiones. Las instalaciones antiguas y los archivos SDK mรกs antiguos todavรญa contienen el lanzador; en una instalaciรณn nueva, el archivo generalmente no estรก presente, y Appium Inspector es la alternativa prรกctica. Los pasos originales descritos anteriormente se mantienen porque siguen siendo vรกlidos para cualquier mรกquina que aรบn conserve la carpeta de herramientas.
Cรณmo usar UIAutomatorViewer para encontrar objetos en tu aplicaciรณn
La secuencia de captura es siempre la misma: prepare el dispositivo, coloque la pantalla que le interesa frente a la cรกmara y, a continuaciรณn, tome la fotografรญa.
- Activar opciones de desarrollador en tu dispositivo. Leer AndroidGuรญa para configurar las opciones de desarrollador en el dispositivo para ver cรณmo habilitar las opciones de desarrollador en Android dispositivos.
- Conecte su Android conectar el dispositivo al PC mediante un cable USB.
- Seleccione la opciรณn "GuruAplicaciรณn "99" de la lista de aplicaciones, como se muestra a continuaciรณn.
- Haga clic en el botรณn Captura de pantalla del dispositivo botรณn para actualizar UIAutomatorViewer y cargar el Guru99 aplicaciones GUI en la herramienta. El botรณn se encuentra en la barra de herramientas resaltada a continuaciรณn.
- Una vez completada la actualizaciรณn, se mostrarรก una captura de pantalla de la GuruLa aplicaciรณn 99 se abre en el panel izquierdo.
- Como ve en la imagen de arriba, en el lado derecho de la ventana hay 2 paneles.
El panel superior muestra la jerarquรญa de nodos: la forma en que se organizan y contienen los componentes de la interfaz de usuario. Al hacer clic en cada nodo, se muestran las propiedades de ese elemento de la interfaz de usuario en el panel inferior.
- Seleccione el botรณn "Cuestionario" en la imagen superior para ver sus diferentes propiedades (texto, ID de recurso...).
Cรณmo utilizar estas propiedades para identificar elementos para la automatizaciรณn
Bueno, no puedes usar las propiedades directamente; cada propiedad tiene otro nombre en la API de automatizaciรณn. Veamos cรณmo hacer funcionar esos valores de propiedad. Los siguientes atributos se pueden usar para identificar el botรณn 'Cuestionario' en el Guru99 aplicaciones.
| Atributo en UIAutomatorViewer | Nombre del localizador en el script | Uso tรญpico |
|---|---|---|
| envรญenos mensaje de texto | nombre | Etiqueta visible en un botรณn o un campo estรกtico. |
| ID de recurso | id | La opciรณn mรกs estable cuando el desarrollador establece una |
| clase | nombre de la clase | Seleccionar un grupo de widgets del mismo tipo. |
| contenido-desc | ID de accesibilidad | Localizador multiplataforma que tambiรฉn ayuda a los lectores de pantalla. |
Cada mapaping es visible directamente en el panel de detalles del nodo. envรญenos mensaje de texto El atributo se puede usar como "nombre", como muestra la fila de propiedades a continuaciรณn.
El ID de recurso El atributo se puede utilizar como โidโ.
El clase El atributo se puede utilizar como โclassNameโ.
El contenido-desc El atributo se puede utilizar como โAccessibilityIdโ.
Junto con los atributos anteriores, podemos escribir XPaths para la identificaciรณn de objetos. Esos nombres de atributos tambiรฉn son los que se pasan. capacidades deseadas y estrategias de localizaciรณn una vez que el script estรฉ en ejecuciรณn.
Cรณmo crear localizadores XPath a partir de atributos de UIAutomatorViewer
XPath es la alternativa cuando ningรบn atributo es รบnico por sรญ solo. El panel de detalles del nodo proporciona todos los valores que necesita la expresiรณn, por lo que XPath es simplemente el atributo que ya se ha leรญdo, escrito en forma de predicado.
Siga los pasos del panel en este orden:
- Seleccione el nodo en el panel superior y lea su clase, envรญenos mensaje de texto, ID de recurso y contenido-desc valores en el panel inferior.
- Prefiera un รบnico atributo estable. Si resource-id estรก completo, รบselo y listo; no se necesita XPath.
- Si ninguno es รบnico, combine dos atributos en un solo predicado.
- Si la etiqueta cambia en tiempo de ejecuciรณn, cambie la prueba de igualdad para una coincidencia parcial.
Los patrones que se muestran a continuaciรณn utilizan los nombres de los atributos exactamente como los informa UIAutomatorViewer.
<!-- match on the visible label --> //*[@text='Quiz'] <!-- match on the resource-id reported by the viewer --> //*[@resource-id='com.example.app:id/quiz_button'] <!-- match on the widget class --> //android.widget.Button[@text='Quiz'] <!-- partial match when the label is dynamic --> //*[contains(@text,'Qui')] <!-- two attributes combined for a unique match --> //*[@class='android.widget.Button' and @content-desc='Quiz']
Unas pocas reglas evitan que estas expresiones se vuelvan frรกgiles. Las rutas absolutas que recorren todo el รกrbol se rompen en el momento en que un desarrollador envuelve un diseรฑo en un contenedor mรกs, asรญ que comience cada expresiรณn con la doble barra y haga coincidir con un atributo en su lugar. Los predicados basados โโen รญndices se comportan de la misma manera: sobreviven hasta que la pantalla gana una fila. Y una expresiรณn que es รบnica en la pantalla de un telรฉfono puede coincidir con varios nodos en el diseรฑo de una tableta, asรญ que vuelva a inspeccionar la misma pantalla en ambos factores de forma antes de promover el localizador a un conjunto. La misma disciplina se aplica a XPath en Seleniumdonde el รกrbol es un DOM en lugar de una jerarquรญa de vistas.
Errores que se pueden encontrar al usar UIAutomatorViewer
La mayorรญa de los fallos se producen antes de que se dibuje un solo nodo, y casi todos tienen que ver con la conexiรณn entre la estaciรณn de trabajo y el telรฉfono mรณvil.
- Veo el error: โNo Android Los dispositivos fueron detectados por adb, como se muestra en la captura de pantalla a continuaciรณn. ยฟCรณmo puedo solucionar esto?
La Soluciรณn: Asegรบrese de que su dispositivo estรฉ conectado al PC.
La tabla que aparece a continuaciรณn amplรญa esa respuesta a los demรกs mensajes con los que los evaluadores interactรบan con mayor frecuencia.
| Sรญntoma | Causa probable | Soluciรณn |
|---|---|---|
| No Android Los dispositivos fueron detectados por adb | Dispositivo no conectado, depuraciรณn USB desactivada o cable solo de carga. | Vuelva a conectar con un cable de datos, habilite la depuraciรณn USB y, a continuaciรณn, confirme que el dispositivo aparece en la lista de dispositivos adb. |
| Dispositivo catalogado como no autorizado | La solicitud de huella dactilar RSA nunca fue aceptada en el telรฉfono. | Desbloquea la pantalla, vuelve a conectar y pulsa Permitir depuraciรณn USB. |
| Falta el archivo uiautomatorviewer.bat | El paquete de herramientas SDK obsoleto no estรก instalado. | Utilice una instalaciรณn de SDK existente que aรบn lo contenga, o cambie a Appium Inspector |
| La jerarquรญa estรก vacรญa o la captura falla. | La pantalla cambiรณ durante el volcado de memoria o la aplicaciรณn bloquea la captura de pantalla. | Mantรฉn la pantalla quieta y vuelve a tomar la captura de pantalla; las pantallas seguras no se pueden capturar. |
| El contenido de WebView se muestra como un รบnico nodo. | El visor solo lee vistas nativas | Inspeccione el contenido web con las herramientas para desarrolladores del navegador o con un inspector que admita el contexto web. |
UIAutomatorViewer vs Appium Inspector vs. Inspector de maquetaciรณn
Se suelen utilizar tres inspectores contra Android pantallas, y resuelven problemas ligeramente diferentes.
| Criterio | UIAutomatorViewer | Appium Inspector | Android Studio Inspector de diseรฑo |
|---|---|---|---|
| Se envรญa con | El legado Android paquete de herramientas SDK | Una aplicaciรณn de escritorio independiente | Android Studio |
| Plataformas inspeccionadas | Android รบnico | Android y iOS | Android รบnico |
| Necesita un servidor en funcionamiento. | No, se comunica directamente con adb. | Sรญ, se conecta a un Appium sesiรณn del servidor | No, se adjunta a un proceso depurable. |
| Genera cรณdigo de localizaciรณn | No, los valores se copian manualmente. | Sรญ, sugiere localizadores y puede registrar acciones. | No, es una vista de depuraciรณn. |
| Mejores adecuados para | Una bรบsqueda rรกpida de atributos en una configuraciรณn anterior. | Creaciรณn y validaciรณn de localizadores para una suite | Diagnรณstico de problemas de diseรฑo y renderizado |
Para una suite que ya se ejecuta a travรฉs de AppiumEl Inspector es el sucesor natural: lee los mismos atributos, ejecuta el mismo controlador UiAutomator2 en segundo plano y tambiรฉn funciona con iOS. Appium Proyecto Inspector Se lanza activamente, por lo que es la opciรณn mรกs segura para trabajos nuevos, mientras que Layout Inspector sigue siendo รบtil cuando la pregunta es por quรฉ una vista se muestra de forma extraรฑa en lugar de cรณmo abordarlo. Si aรบn estรก eligiendo una pila, la comparaciรณn mรกs amplia en nuestra guรญa para herramientas de prueba de aplicaciones mรณviles es un buen siguiente paso, y Ejemplos de casos de prueba para dispositivos mรณviles mostrar a quรฉ se destinan finalmente estos localizadores.







