Maison > développement back-end > Tutoriel Python > Comment puis-je localiser efficacement des éléments Web avec plusieurs noms de classe à l'aide de Selenium et Python ?

Comment puis-je localiser efficacement des éléments Web avec plusieurs noms de classe à l'aide de Selenium et Python ?

Linda Hamilton
Libérer: 2024-12-11 18:57:13
original
237 Les gens l'ont consulté

How Can I Efficiently Locate Web Elements with Multiple Class Names Using Selenium and Python?

Recherche d'éléments par nom de classe à l'aide de Selenium et Python

Dans les scénarios de web scraping, il est souvent nécessaire de localiser des éléments sur une page Web dynamiquement. Pour surmonter les limites de BeautifulSoup dans la gestion du contenu dynamique, Selenium peut être intégré pour permettre d'attendre le chargement des éléments via JavaScript avant le scraping.

Considérez le code Python suivant :

element = WebDriverWait(driver, 100).until(EC.presence_of_element_located((By.class, "ng-binding ng-scope")))
Copier après la connexion

Dans ce ligne de code, l'intention est de spécifier un nom de classe pour l'identification de l'élément. Cependant, une erreur peut se produire en raison de la présence de plusieurs noms de classe dans l'argument By.class. Selenium ne prend pas en charge la transmission de plusieurs noms de classe via By.class.

Solution

Pour résoudre ce problème, tenez compte des suggestions suivantes :

  • Au lieu de présence_of_element_located(), utilisez soit visible_of_element_located(), soit element_to_be_clickable() pour une interaction plus précise entre les éléments.
  • Combinez les attributs ID et CLASS pour l'identification des éléments en utilisant ce qui suit techniques :

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

En incorporant ces modifications, vous pouvez localiser efficacement des éléments sur des pages Web qui se chargent dynamiquement via JavaScript, permettant ainsi un scraping Web réussi.

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