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"))
XPATH :
element = WebDriverWait(driver, 20).until(EC.visibility_of_element_located( (By.XPATH, "//*[@class='ng-binding ng-scope' and @id='tabla_evolucion']"))
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!