Cómo obtener un atributo de un elemento de Selenium

2 minutos de lectura

Avatar de usuario de Richard
Ricardo

Estoy trabajando con Selenium en Python. me gustaría conseguir el .val() de un <select> elemento y comprobar que es lo que espero.

Este es mi código:

def test_chart_renders_from_url(self):
    url="http://localhost:8000/analyse/"
    self.browser.get(url)
    org = driver.find_element_by_id('org')
    # Find the value of org?

¿Cómo puedo hacer esto? La documentación de Selenium parece tener mucho sobre la selección de elementos, pero nada sobre los atributos.

  • selenium-python-docs, 7.11 get_attribute(name) podría hacer el trabajo, aunque no creo que realmente lo haya usado. ¡Dale un tiro!

    – Abd Azrad

    19 mayo 2015 a las 12:14


Avatar de usuario de Saifur
Saifur

Probablemente estés buscando get_attribute(). Se muestra un ejemplo aquí también

def test_chart_renders_from_url(self):
    url="http://localhost:8000/analyse/"
    self.browser.get(url)
    org = driver.find_element_by_id('org')
    # Find the value of org?
    val = org.get_attribute("attribute name")

Avatar de usuario de Shubham Jain
Shubham jainista

Pitón

element.get_attribute("attribute name")

Java

element.getAttribute("attribute name")

Rubí*

element.attribute("attribute name")

C#

element.GetAttribute("attribute name");

avatar de usuario de Selenium no detectado
selenio no detectado

Como se ha desarrollado recientemente Aplicaciones web están usando JavaScript, jQuery, AngularJS, ReaccionarJS etc. existe la posibilidad de recuperar un atributo de un elemento a través de Selenio tienes que inducir WebDriverWait para sincronizar el WebDriver instancia con el retraso cliente web es decir, el Navegador web antes de intentar recuperar cualquiera de los atributos.

Algunos ejemplos:

  • Pitón:
    • Para recuperar cualquier atributo de un visible elemento (por ejemplo <h1> etiqueta) necesita usar el condiciones_esperadas como visibilidad_de_elemento_ubicado(localizador) como sigue:

      attribute_value = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.ID, "org"))).get_attribute("attribute_name")
      
    • Para recuperar cualquier atributo de un interactivo elemento (por ejemplo <input> etiqueta) necesita usar el condiciones_esperadas como element_to_be_clickable(localizador) como sigue:

      attribute_value = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.ID, "org"))).get_attribute("attribute_name")
      

Atributos HTML

A continuación se muestra una lista de algunos atributos que se usan a menudo en HTML

Atributos HTML

Nota: Una lista completa de todos los atributos para cada elemento HTML, se encuentra en: Referencia de atributos HTML

¿Ha sido útil esta solución?