¿Qué es XPath en selenio?

Como todos sabemos que ahora con el cambio en la tendencia en la industria del software, el alcance de las pruebas manuales se ha minimizado y la mayoría de los casos de prueba están automatizados, ya que no solo aumenta la eficiencia y la precisión, sino que también reduce el tiempo. Muchas herramientas de software están disponibles en el mercado para el desarrollo y la ejecución de scripts de prueba automatizados. El selenio es uno de ellos. Selenium es de código abierto, y quizás el conjunto de pruebas de automatización más utilizado para las pruebas de automatización. Admite una variedad de idiomas como Php, Java, Perl, Python, etc. al instalar los controladores de idiomas particulares. También es compatible con múltiples navegadores como Chrome, Mozilla Firefox, IE1, Edge, navegador Opera, etc.

XPath significa lenguaje de ruta XML. En Selenium, XPath no es más que una ruta XML normal que se utiliza para localizar cualquier elemento en la página web mediante la expresión de ruta XML. Para realizar cualquier operación como hacer clic en el botón, escribir en un cuadro de texto, seleccionar cualquier campo, etc., lo primero es encontrar la ubicación de ese elemento web en el documento y en Selenium, Xpath ayuda a localizar esa ruta. XPath usa la estructura HTML DOM mientras recopila la ruta de cualquier elemento en una página web. Tiene expresión de ruta escrita junto con algunas condiciones. XPath es una recomendación del W3C,

Sintaxis de XPath en Selenium

A continuación se muestra la sintaxis de XPath en Selenium:

Xpath = //Tagname(@Atrribute=value)

dónde,

  • //: Se usa para seleccionar el nodo actual.
  • Nombre de etiqueta : especifica el nombre de etiqueta de un nodo en particular como img, div, input, etc.
  • @: Selecciona el atributo.
  • Atributo: especifica el nombre del atributo del nodo.
  • Valor: especifica los valores de los atributos del nodo.

Se utilizan varios localizadores en Xpath para localizar los elementos web:

  • Id: Encuentra el elemento web por el id de ese elemento. (Id es único para cada elemento web).
  • Nombre: encuentra el elemento web por el nombre de ese elemento.
  • Nombre de clase: busca el elemento web por el nombre de clase de ese elemento.
  • Texto del enlace: Encuentra el elemento web por el texto escrito en el enlace de ese elemento.
  • Ruta CSS: los elementos que no tienen nombre, id, nombre de clase se encuentran a través de la ruta CSS creada por probadores / desarrolladores.

Tipos de XPath en selenio

Básicamente, hay dos tipos de XPath en Selenium que se describen a continuación:

1. Absatuto XPath

Es una de las formas más sencillas y directas de localizar un elemento web en un documento. Selecciona una ruta de elemento desde el nodo raíz y toma la ruta hasta que el elemento cubra todas las secciones de un documento, incluyendo div, section, li, etc. Comienza con una barra diagonal '/' que especifica el nivel raíz. La única desventaja de usar Absolute Path en Selenium es que si se realizan cambios en el sitio web o en un documento, la XPath completa de ese elemento cambia y, por lo tanto, la ruta anterior no funcionará y el programa completo fallará.

Ejemplo:

html/body/div(1)/section/div/div/div/div(2)/div

Si se cambiaron los cambios realizados en el documento HTML y la posición de los elementos div, se producirá un error en el XPath anterior.

2. XPath relativo

Una de las desventajas de Absolute XPath, aparte de la modificación, son los caminos demasiado largos, los caminos relativos son un salvador en tales situaciones. La ruta relativa se utiliza para definir la ruta de un elemento desde el medio de la estructura HTML DOM. A diferencia de los XPath absolutos, no es necesario definir la ruta desde el nivel raíz, lo que a su vez reduce la longitud total de XPath. Comienza con una barra diagonal doble '//', es decir, Seleccionar el elemento web desde cualquier parte del documento.

Ejemplo:

//input(@id = 'email')/div/li/a

Funciones XPath en selenio

A continuación se presentan algunas de las funciones de XPath utilizadas en Selenium:

1. Contiene (): es un método que se usa en la expresión XPath y se usa para ubicar el elemento con el texto parcial en el caso en que el texto a buscar es demasiado largo y el valor del atributo cambia dinámicamente en la recarga.

Ejemplo:

Xpath = //*(contains(@name='inputButton'))

2. Siguiente: este método selecciona todos los elementos del nodo actual en la estructura HTML DOM.

Ejemplo:

Xpath=//*(@type='password')//following::input(1)

3. Ancestro: este método se utiliza para seleccionar todos los elementos ancestros del nodo actual. El antepasado puede ser abuelos, padres del nodo actual en el documento HTML.

Ejemplo:

Xpath=//*(text()='Introduction')//ancestor::div

Encontrará que todos los antepasados ​​del elemento web actual coinciden con los criterios de text () = 'Introducción' que tiene la etiqueta div.

4. Hijo: este método se utiliza en los escenarios en los que queremos seleccionar los elementos hijos del nodo actual en el documento HTML.

Ejemplo:

Xpath=//*(@id='email')/child::div

5. Proceder: este método se utiliza para seleccionar todos los nodos que proceden al nodo actual o los que vienen antes del nodo actual.

Ejemplo:

Xpath=//*(@type=button)//preceding::div

6. Siguiente-hermano: este método se utiliza para localizar a los hermanos que están en el mismo nivel que el nodo actual.

Ejemplo:

Xpath=//*(@type=button)//following-sibling::div

7. Principal: este método se utiliza para ubicar el principal del nodo actual en el documento HTML.

Ejemplo:

Xpath=//*(@id='password')//parent::li

8. Self: este método se utiliza para ubicarse en el documento HTML. Self significa solo el nodo actual.

Ejemplo:

Xpath=//*(@id='email')//self::input

9. Descendiente: este método se utiliza para encontrar los descendientes del nodo actual en el documento HTML.

Ejemplo:

Xpath=//*(@id='email')//descendant::a

10. Comenzar con: Este método se usa en los escenarios cuando queremos hacer coincidir el texto inicial de los atributos y cuando necesitamos ubicar el elemento web cuando el atributo cambia dinámicamente al actualizar y volver a cargar una página web.

Ejemplo:

Xpath=//label(starts-with(@name, 'mess_avg'))

Conclusión

Se mencionan anteriormente algunos de los tipos de XPath y las diversas funciones utilizadas en Selenium para XPath. Estas funciones facilitan el trabajo con XPaths como el primer paso para automatizar la ubicación del elemento web a través de XPath. Se utilizan varios localizadores como id, nombre, ruta CSS, texto de enlace en XPath para ubicar elementos web en la página web. El conocimiento y las diferentes formas de encontrar XPath son muy importantes cuando se trabaja con pruebas de automatización utilizando Selenium o cualquier otra herramienta.

Artículos recomendados

Esta es una guía de ¿Qué es XPath en Selenium? Aquí discutimos el concepto básico, la sintaxis, los tipos y las funciones de XPath en Selenium con sus ejemplos. También puede consultar el siguiente artículo para obtener más información:

  1. Los 10 usos principales del selenio
  2. Cómo instalar Selenium | Pasos
  3. Alternativas de selenio | Componentes
  4. ¿Qué es Selenium Web Driver?
  5. ¿Qué es XPath?