Maison > développement back-end > Tutoriel Python > Comment puis-je utiliser WebDriverWait avec Selenium pour localiser des éléments par classe dans des pages Web dynamiques ?

Comment puis-je utiliser WebDriverWait avec Selenium pour localiser des éléments par classe dans des pages Web dynamiques ?

DDD
Libérer: 2024-12-11 00:20:11
original
1003 Les gens l'ont consulté

How Can I Use WebDriverWait with Selenium to Locate Elements by Class in Dynamic Web Pages?

Exploiter la spécification de classe avec WebDriverWait

Dans les projets de web scraping impliquant des sites Web avec du contenu dynamique chargé via JavaScript, l'intégration de la bibliothèque Selenium avec Python améliore l'efficacité en permettant le contrôle de l'identification et du chargement des éléments. Cela permet d'attendre que des éléments spécifiques soient rendus avant de procéder au scraping.

Cependant, lorsqu'il s'agit de spécifier des éléments par classe au lieu de ID, l'utilisation de EC.presence_of_element_located((By.ID, "myDynamicElement")) présente un défi. Pour résoudre ce problème, By.class ne peut pas être utilisé avec plusieurs noms de classe, ce qui entraîne des erreurs.

Solution

Pour surmonter cette limitation et spécifier efficacement les éléments par classe, considérez en employant d'autres méthodes WebDriverWait ExpectedConditions telles que visibilité_of_element_located() ou element_to_be_clickable(). De plus, l'utilisation de CSS_SELECTOR ou XPATH permet de combiner les attributs ID et CLASS pour une identification précise :

CSS_SELECTOR :

element = WebDriverWait(driver, 20).until(EC.visibility_of_element_located(
    (By.CSS_SELECTOR, ".ng-binding.ng-scope#tabla_evolucion"))
Copier après la connexion

XPATH :

element = WebDriverWait(driver, 20).until(EC.visibility_of_element_located(
    (By.XPATH, "//*[@class='ng-binding ng-scope' and @id='tabla_evolucion']"))
Copier après la connexion

N'oubliez pas que la solution la plus adaptée dépend des exigences spécifiques de votre projet et du HTML du site Web. structure.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal