Accès aux éléments de texte avec Selenium WebDriver en Python
Dans l'automatisation Web à l'aide de Selenium WebDriver, la récupération du contenu textuel des éléments HTML est essentielle. Cependant, des problèmes peuvent survenir lorsque l'ID de l'élément change dynamiquement lors du rechargement de la page, comme dans le cas présenté.
Le code d'origine
Le code d'origine fourni :
text = driver.find_element_by_class_name("current-stage").getText("my text")
tente de localiser un élément par nom de classe « étape actuelle » et d'extraire son texte, qui devrait être « mon texte ».
La structure HTML
La structure HTML fournie montre l'élément de texte avec un nom de classe "current-text" et un ID dynamique, comme suit :
<span class="current-text" id="yui_3_7_0_4_1389185744113_384">my text</span>
Le problème
Le problème avec le code original n'est pas lié à XPath mais plutôt à une mauvaise utilisation de la méthode getText. Passer un argument à getText tente de définir le texte de l'élément, pas de le récupérer.
L'approche correcte
L'approche correcte pour extraire le texte de l'élément est pour utiliser getText sans aucun argument, comme suit :
text = driver.find_element_by_class_name("current-stage").getText()
Ce code récupérera le contenu textuel de l'élément et le stockera dans la variable texte.
Vérification du résultat
Au lieu de transmettre le texte attendu à la méthode getText, vous pouvez ensuite vérifier le texte récupéré à l'aide de la méthode assertEqual, comme suit :
expected_text = "my text" actual_text = driver.find_element_by_class_name("current-stage").getText() self.assertEqual(expected_text, actual_text)
Cette approche garantit que le texte récupéré correspond à la valeur attendue.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!