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.
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")
Python
element.get_attribute("attribute name")
Java
element.getAttribute("attribute name")
Ruby
element.attribute("attribute name")
C #
element.GetAttribute("attribute name");
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")
Vous trouverez ci-dessous une liste de certains attributs souvent utilisés en HTML.
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