Comment obtenir l'attribut d'élément de Selenium?

86

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

Voici 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? Les documents Selenium semblent avoir beaucoup sur la sélection des éléments mais rien sur les attributs.

Richard
la source
2
selenium-python-docs, 7.11 get_attribute(name) pourrait faire le travail, même si je ne pense pas que je l'ai réellement utilisé. Donner un coup de feu!
Abd Azrad

Réponses:

132

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

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")
Saifur
la source
49

Python

element.get_attribute("attribute name")

Java

element.getAttribute("attribute name")

Rubis

element.attribute("attribute name")

C #

element.GetAttribute("attribute name");
Shubham Jain
la source
7

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

Quelques exemples:

  • Python:

    • Pour récupérer toute forme d'attribut d' un visible élément (par exemple <h1>tag) vous devez utiliser les expected_conditions comme la visibility_of_element_located(locator)façon suivante:

      attribute_value = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.ID, "org"))).get_attribute("attribute_name")
      
    • Pour récupérer toute forme d'attribut un interactif élément (par exemple <input>tag) vous devez utiliser les expected_conditions comme la element_to_be_clickable(locator)façon suivante:

      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

Attributs HTML

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

DebanjanB
la source