La función getAttribute() en Selenium Python

Rana Hasnain Khan 21 junio 2023
  1. la función getAttribute() en Selenium Python
  2. Ventajas de la función getAttribute() en Selenium Python
La función getAttribute() en Selenium Python

El módulo de Python para Selenium está desarrollado para ofrecer un proceso de prueba automatizado. Los enlaces de Selenium Python incluyen una API simple para escribir pruebas funcionales/de aceptación de Selenium WebDriver.

Tener la capacidad de moverse no es muy beneficioso. Queremos interactuar con las páginas, o más precisamente, las piezas HTML que componen una página.

Este artículo explicará el uso del método getAttribute() de Selenium.

la función getAttribute() en Selenium Python

El método getAttribute() puede recuperar propiedades de elementos, como el atributo href de una etiqueta de anclaje. Esta función intentará inicialmente devolver el valor de una propiedad específica.

Si no existe tal propiedad, se devuelve el valor del atributo con el mismo nombre. Sin embargo, no se devuelve ninguno si no existen atributos en un elemento.

¿Qué es un atributo?

Un atributo en HTML define las propiedades de un elemento. Los atributos comprenden pares de nombre y valor, lo que significa que cada atributo tiene un valor y un nombre.

Sus valores están entre comillas dobles y se proporcionan en la etiqueta de apertura. Los atributos HTML incluyen lo siguiente:

< a target="_blank" href="#" class="btn" >

<img src="#" class="image" alt="myImage" >

< input style="height:50px;" class="form-control" type="email" placeholder="Enter email" name="emailAddress" id="emailAddress" >

< button onclick="#" class="btn" value="" >Login< /button >

A partir del ejemplo anterior, las etiquetas HTML obtienen una variedad de propiedades y valores. Por ejemplo, la etiqueta de entrada tenía muchos atributos como clase, estilo, marcador de posición, tipo, nombre e id.

Hay un número entre comillas dobles para cada propiedad. Ahora que entendemos qué significa un atributo para un elemento web HTML o cómo aparece, veamos por qué es útil el método getAttributes().

Ventajas de la función getAttribute() en Selenium Python

Considere una situación en la que debemos verificar dos veces el contenido del marcador de posición en un campo de entrada, la fuente de la imagen y el tamaño del campo. El método getAttribute() resuelve este problema en esta situación.

Para obtener el valor de un atributo, localiza el elemento web que lo contiene y utiliza el método getAttribute().

Analicemos la sintaxis de este método en un ejemplo real, como se muestra a continuación.

# python

GetElem.get_attribute("href")

Como puede ver en la sintaxis anterior, estamos tratando de obtener el atributo href. Ahora, veamos un ejemplo práctico de obtención de valores usando el método getAttribute() ahora que hemos aprendido la sintaxis básica para utilizarlo.

Para desarrollar un script de prueba básico, utilizaremos un sitio web ficticio. Sin más titubeos, veamos el caso de uso antes de pasar al código:

  1. Primero iremos al sitio ficticio.
  2. En el front-end de la página de inicio, obtendremos el atributo href de un enlace.
  3. También obtendremos el atributo src de una imagen.

Ahora, veamos el código para este caso de uso.

Código de ejemplo:

# python
from selenium import webdriver

chromeDriver = webdriver.Chrome()

chromeDriver.get("https://www.inventicosolutions.com/")

getElemByLink = chromeDriver.find_element_by_link_text("About Us")

print(getElemByLink.get_attribute("href"))

getElemByClass = chromeDriver.find_element_by_xpath(
    "/html/body/main/div/div[1]/section[1]/div/div/div/div[7]/div/img"
)

print(getElemByClass.get_attribute("src"))

Producción:

Selenio getAttribute() Ejemplo en Python

Como podemos ver en el ejemplo anterior, podemos obtener cualquier atributo de una etiqueta HTML utilizando el método getAttribute(). Este método puede ayudarnos en el web scraping para obtener datos específicos de un sitio web, como enlaces e imágenes.

Rana Hasnain Khan avatar Rana Hasnain Khan avatar

Rana is a computer science graduate passionate about helping people to build and diagnose scalable web application problems and problems developers face across the full-stack.

LinkedIn

Artículo relacionado - Python Selenium