web-dev-qa-db-fra.com

Comment obtenir un attribut d'élément à partir de Selenium?

Je travaille avec Selenium en Python. Je voudrais obtenir la .val() d'un élément <select> et vérifier que c'est bien ce que j'attends.

Ceci est mon code:

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?

Comment puis-je faire ceci? La documentation de Selenium semble en avoir beaucoup sur la sélection d’éléments mais rien sur les attributs.

57
Richard

Vous recherchez probablement get_attribute(). Un exemple est montré ici aussi

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")
89
Saifur

Python

element.get_attribute("attribute name")

Java

element.getAttribute("attribute name")

Ruby

element.attribute("attribute name")

C #

element.GetAttribute("attribute name");
30
Shubham Jain

Comme le développent récemment les applications Web utilisent JavaScript , jQuery , AngularJS , ReactJS etc, il est possible que pour récupérer l'attribut d'un élément par Selenium , vous devez induire WebDriverWait pour synchroniser le WebDriver instance avec le client Web en retard , c'est-à-dire le navigateur Web avant d'essayer d'extraire les attributs.

Quelques exemples:

  • Python:

    • Pour récupérer tout attribut sous forme d'élément visible (par exemple, la balise <h1>), vous devez utiliser le attendu_conditions comme visibility_of_element_located(locator) comme suit:

      attribute_value = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.ID, "org"))).get_attribute("attribute_name")
      
    • Pour récupérer tout attribut sous forme d'un élément interactif (par exemple, la balise <input>), vous devez utiliser le attendu_conditions en tant que element_to_be_clickable(locator) comme suit:

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

Attributs HTML

Vous trouverez ci-dessous une liste de certains attributs souvent utilisés en HTML.

HTML Attributes

Note: Une liste complète de tous les attributs de chaque élément HTML est répertoriée dans: Référence d'attribut HTML

3
DebanjanB