Comment attendre efficacement le chargement de plusieurs éléments dans Selenium avec Python ?

Linda Hamilton
Libérer: 2024-10-28 23:52:30
original
626 Les gens l'ont consulté

How to Effectively Wait for Multiple Elements to Load in Selenium with Python?

Python : attendre le chargement de plusieurs éléments

Les listes chargées en AJAX peuvent présenter des défis pour la vérification de la visibilité dans Selenium. Pour vérifier de manière fiable si une liste contenant plusieurs éléments est entièrement chargée, envisagez les approches suivantes :

Attente explicite avec WebDriverWait

En utilisant WebDriverWait, vous pouvez induire la condition visibilité_of_all_elements_located() :

<code class="python">elements = WebDriverWait(driver, 20).until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR, "ul.ltr li[id^='t_b_'] > a[id^='t_a_'][href]")))</code>
Copier après la connexion

Vous pouvez également utiliser XPath :

<code class="python">elements = WebDriverWait(driver, 20).until(EC.visibility_of_all_elements_located((By.XPATH, "//ul[@class='ltr']//li[starts-with(@id, 't_b_')]/a[starts-with(@id, 't_a_') and starts-with(., 'Category')]")))</code>
Copier après la connexion

En attente d'un nombre spécifique d'éléments

Pour attendre un nombre spécifique d'éléments, tel que 10, utilisez une fonction lambda :

<code class="python">myLength = 9
WebDriverWait(driver, 20).until(lambda driver: len(driver.find_elements_by_xpath("//ul[@class='ltr']//li[starts-with(@id, 't_b_')]/a[starts-with(@id, 't_a_') and starts-with(., 'Category')]")) > int(myLength))</code>
Copier après la connexion
<code class="python">myLength = 10
WebDriverWait(driver, 20).until(lambda driver: len(driver.find_elements_by_xpath("//ul[@class='ltr']//li[starts-with(@id, 't_b_')]/a[starts-with(@id, 't_a_') and starts-with(., 'Category')]")) == int(myLength))</code>
Copier après la connexion

Notes supplémentaires

  • N'oubliez pas d'importer les packages Selenium nécessaires.
  • Assurez-vous que les localisateurs utilisés sont uniques et spécifiques à l'objet souhaité. éléments.
  • Envisagez d'explorer les discussions et les références fournies pour de plus amples informations.

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