Publicado: Enero 15, 2020
Pruebas web y móviles: Cómo localizar elementos
Cuando se trata de automatizar la web y prueba móvil La idea principal es simular las acciones reales de los usuarios para cubrir todos los casos de uso posibles. Esto se utiliza principalmente para pruebas de regresión. De esta manera, se genera confianza en el proceso de introducción de nuevas funcionalidades o correcciones de errores. El objetivo principal es no dañar nada que ya funcione. En segundo lugar, y no menos importante, es que la experiencia del usuario final se mantenga fluida y sin problemas.
Las herramientas más populares de la industria para navegador cruzado y la automatización web y móvil multiplataforma son Selenio y Appium correspondientementeEste artículo abarca las principales estrategias para localizar los controles de la aplicación (botones, enlaces, imágenes, texto, etc.) para que pueda identificar la forma correcta de identificar los elementos con los que interactuar.
En primer lugar, ¿qué es un elemento? En el mundo de la automatización de pruebas de interfaz de usuario, es la unidad más pequeña de una aplicación web o móvil con la que se puede interactuar (clics, desplazamiento del ratón, eventos de teclado o ratón, o pulsaciones). Para imágenes y campos de texto, es posible que desee comprobar la presencia o ausencia del elemento. Pruebe el diseño de la aplicación. Por lo tanto, el elemento es básicamente un elemento HTML o XML; normalmente es un elemento HTML o XML. .
Dado el siguiente fragmento de código: <a id =“foo” href =“https://experitest.com”>Experimentado</a>
- a es el HTML representando un hiperenlace
- @carné de identidad y @href son atributos HTML y “foo” y “https://experitest.com“son sus respectivos valores
- Experitest es el texto del hipervínculo
Ahora veamos cómo podemos “encontrar” este enlace para poder trabajar con él (hacer clic o verificar sus atributos o valores de texto).
Si investigas oorg.openqa.selenium.Por clase En la documentación de JavaDoc, verá que existen varias estrategias para localizar los elementos en la aplicación bajo prueba. Aquí están las 3 principales:
- Id
- Selector CSS
- XPath
Las demás estrategias restantes son:
- Nombre
- Nombre de la clase
- Texto del enlace
- Texto de enlace parcial
- Nombre de etiqueta
Estos conceptos se explican por sí mismos, por lo tanto no requieren mayor descripción.
De estas tres: Id, CSS y XPath, ¿cuál elegir? El orden en que se enumeran las estrategias es intencional porque:
- La identificación (Id) es la forma más rápida de localizar el elemento y su consumo de recursos es mínimo.
- CSS: opción más lenta y que consume más recursos para localizar el elemento, pero ofrece mayor flexibilidad.
- XPath es la opción más lenta y costosa, pero también la más potente, ya que se asemeja bastante a un lenguaje de programación.
Obtener detalles de un elemento desde una página web o aplicación móvil
Al examinar el código fuente de la página
Implementaciones de Selenium y Appium WebDriver brindar función getPageSource() que devuelve la estructura HTML o XML subyacente de la página web o aplicación actual. Puede guardar el resultado de esta función en un archivo y luego abrirlo con su navegador preferido. herramientas para desarrolladores inspeccionar los elementos e identificar atributos “interesantes”.
Utilizando las herramientas de desarrollador del navegador en la página web
La mayoría de los navegadores modernos incluyen herramientas para desarrolladores que permiten obtener información detallada sobre el código fuente de la página, buscar elementos específicos, usar selectores para pruebas web y móviles, depurar scripts, etc. Normalmente, las herramientas para desarrolladores se abren con la tecla F12. Si no puedes abrirlas, consulta la documentación de tu navegador.
Usando la sesión del inspector de Appium
Si ejecuta la aplicación Appium Desktop, es posible iniciar una sesión de inspector donde podrá ver el código fuente de la página y las propiedades de los elementos.
Así es como se ve en iOS:
Y aquí está el equivalente para Android:
Búsqueda de elementos de prueba web y móvil por ID
Dado que el elemento con el que necesitas trabajar tiene un atributo ID único, la forma más sencilla de localizarlo es utilizando dicho ID. Asegúrate de que:
- No existen otros elementos con este ID. Si existieran, Selenium o Appium trabajarían con el primer elemento que encontraran, que no necesariamente sería el que buscas; el ID debe ser legible para una persona. Por ejemplo: <Las opciones de entrada id ="contraseña"/> parece ser un identificador que probablemente no se cambie, y es <Las opciones de entrada id =“id_j116”/>. Resulta sospechoso, ya que podría generarse automáticamente y estar sujeto a cambios en la próxima compilación/implementación de la aplicación o incluso al recargar la página.
Los selectores basados en ID son muy fáciles de desarrollar, en el caso de
- aplicaciones web – las id atributo del elemento HTML correspondiente
- Aplicaciones de Android – una ID de recurso atributo del elemento XML correspondiente
- Aplicaciones iOS: un atributo con nombre del elemento XML correspondiente
Si los elementos de tu aplicación no tienen identificadores, lo mejor sería hablar con tus desarrolladores y pedirles que, en la medida de lo posible, asignen identificadores únicos a cada elemento. Esto también podría ser necesario para el análisis de datos, por ejemplo, para el seguimiento de la actividad del usuario, por lo que probablemente estarán de acuerdo.
Selectores CSS
En caso de que no se puedan usar los ID de los elementos, aún puede localizar el elemento usando Selectores CSS. Es más lento que ID y consume más recursos en términos de CPU y RAM, sin embargo, tendrá muchas más opciones para encontrar el elemento que busca.
Por ejemplo, la directriz PRUEBA GRATUITA botón en https://experitest.com/ La página se ve así:
PRUEBA GRATUITA
Como puedes ver, no hay ningún atributo ID; sin embargo, puedes usar el href Para localizar el elemento, el selector CSS correspondiente sería:
a[href=”/prueba-gratuita”]
Incluso puedes hacer una coincidencia parcial como a[href*=”prueba”] y aún así localizar el elemento.
Selectores XPath
En situaciones donde no se dispone de un ID único ni se puede usar un selector CSS, es necesario considerar XPath. Si bien es la opción más lenta y la que consume más recursos, también es la más potente. Ofrece acceso completo al DOM. Ejes XPath Para acceder a los elementos padres, hijos, hermanos, etc., combine varias expresiones o utilice las existentes. Operadores y funciones XPath para que coincidan exactamente, e incluso crear nuevas si las existentes no se adaptan a su caso.
Para consultas sencillas como la mencionada anteriormente PRUEBA GRATUITA La sintaxis del enlace es bastante similar a la de CSS, el mismo localizador de elementos para hacer coincidir el href El atributo en lenguaje XPath será:
//a[@href='/free-trial']
Más selectores XPath para encontrar el mismo elemento:
- Encuentra un enlace con PRUEBA GRATUITA texto: //a[text()='PRUEBA GRATUITA']
- Encuentra un enlace que contenga GRATIS. texto: //a[contiene(texto(), 'GRATIS')]
- Encuentra un enlace que comience con GRATIS. texto: //a[starts-with(text(),'GRATIS')]
- Y una bonificación. No hay termina con() función en XPath 1.0, sin embargo, puedes encontrar el equivalente usando funciones existentes. Busca un enlace que termine con Prueba texto: //a[substring(text(), string-length(text()) – string-length('TRIAL')+ 1, string-length(text()))= 'TRIAL']
Si tienes dificultades para crear una expresión XPath, no olvides Appium StudioProporciona una forma visual sencilla y fácil de gestionar dispositivos/emuladores, perfiles de aprovisionamiento, generación de código de prueba mediante grabación, y Object Spy puede generar XPath único expresión para un elemento de la página que permite crear un localizador con un solo clic.
Ahora ya debería tener una idea clara de qué selectores de elementos usar, así como de las ventajas, desventajas, capacidades y limitaciones de cada uno. Esperamos que esta información le facilite el trabajo y haga que sus pruebas web y móviles sean más robustas y fiables.
También puede interesarle
Mejores prácticas para la optimización del análisis de la causa raíz
A estas alturas, es innegable que la IA está transformando la forma en que…
Android 17 ya está disponible. ¿Está lista tu aplicación?
Cada lanzamiento importante de Android sigue el mismo patrón. Google lanza…
El genio y el contrato
Cómo encajan realmente el desarrollo guiado por especificaciones (SDD) y el desarrollo guiado por pruebas (TDD)...







