Maison > développement back-end > Tutoriel Python > Comment récupérer du texte à partir d'éléments HTML modifiés dynamiquement dans Selenium WebDriver ?

Comment récupérer du texte à partir d'éléments HTML modifiés dynamiquement dans Selenium WebDriver ?

Linda Hamilton
Libérer: 2024-11-03 04:36:03
original
1032 Les gens l'ont consulté

How to Retrieve Text from Dynamically Changing HTML Elements in Selenium WebDriver?

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")
Copier après la connexion

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>
Copier après la connexion

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()
Copier après la connexion

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)
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal