Localisation d'éléments avec un texte spécifique dans Selenium WebDriver (Python)
Identifier des éléments en fonction de leur contenu textuel peut être une tâche difficile dans Selenium WebDriver . Voici les étapes pour trouver un élément contenant un texte spécifique :
Utiliser contain(text(), "text") XPath
L'approche la plus directe consiste à utiliser la fonction contain() dans une expression XPath. Cette fonction vous permet de rechercher des éléments dont le contenu textuel correspond partiellement à la chaîne spécifiée. Cependant, le comportement par défaut est sensible à la casse.
Pour résoudre le problème d'insensibilité à la casse, ajoutez le préfixe //* à l'expression XPath :
<code class="python">driver.find_elements_by_xpath("//*[contains(text(), 'My Button')]")</code>
Cette expression localisera tout élément contenant le texte "Mon bouton" (insensible à la casse) n'importe où dans son contenu textuel.
Itération et vérification d'Element.text
Une autre option consiste à parcourir tous les éléments du page et inspectez la propriété element.text. Cependant, cette méthode est coûteuse en termes de calcul et peut être lente, en particulier avec des pages Web volumineuses.
Identification des éléments imbriqués
Pour éviter de sélectionner des éléments imbriqués dont le contenu textuel se chevauche, vous besoin de déterminer si un élément est l'enfant d'un autre élément contenant le même texte. Ceci peut être réalisé en utilisant les méthodes is_displayed() et find_element_by_xpath() :
<code class="python">outer_element = driver.find_element_by_css_selector("div.outer") if outer_element.is_displayed(): inner_element = outer_element.find_element_by_xpath("./div[text()='My Button']")</code>
Ce code vérifie si l'élément externe est visible, puis utilise une expression XPath pour trouver l'élément interne directement en dessous avec le texte spécifique.
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!