J'utilise Selenium WebDriver en utilisant Python pour les tests d'interface utilisateur et je souhaite vérifier le code HTML suivant:
<ul id="myId">
<li>Something here</li>
<li>And here</li>
<li>Even more here</li>
</ul>
À partir de cette liste non ordonnée, je souhaite parcourir les éléments et en vérifier le texte. J'ai sélectionné l'élément ul par sa id
, mais je ne trouve aucun moyen de boucler sur les enfants <li>
- dans Selenium.
Est-ce que quelqu'un sait comment vous pouvez faire une boucle sur le <li>
- childeren d'une liste non ordonnée avec Selenium (en Python)?
Vous devez utiliser la méthode .find_elements_by_
.
Par exemple,
html_list = self.driver.find_element_by_id("myId")
items = html_list.find_elements_by_tag_name("li")
for item in items:
text = item.text
print text
Vous pouvez utiliser la compréhension de liste:
# Get text from all elements
text_contents = [el.text for el in driver.find_elements_by_xpath("//ul[@id='myId']/li")]
# Print text
for text in text_contents:
print text