Maison >développement back-end >Tutoriel Python >Comment attendre le chargement de plusieurs éléments dans Python Selenium ?

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

Patricia Arquette
Patricia Arquetteoriginal
2024-10-30 03:29:28369parcourir

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

Python Selenium : attendre le chargement de plusieurs éléments

Votre tâche consiste à vous assurer qu'une liste dynamique, chargée via AJAX, comporte plusieurs éléments li avant procéder. La liste affiche initialement un message de chargement avant que le contenu réel ne soit disponible.

Solution utilisant WebDriverWait avec des conditions personnalisées

L'approche recommandée consiste à utiliser WebDriverWait avec une fonction lambda pour définir une condition personnalisée. Cette fonction permet de vérifier que le nombre d'éléments localisés dépasse un minimum spécifié :

<code class="python">from selenium.webdriver.support import expected_conditions as EC

num_elements = 1
WebDriverWait(driver, timeout).until(
    lambda d: len(d.find_elements_by_css_selector('ul.ltr li[id^="t_b_"] a[id^="t_a_"]')) > num_elements
)</code>

Approches alternatives

  • Utilisation d'ExpectedConditions.presence_of_element_located (): Cette condition vérifie la présence d'un élément spécifié, mais elle ne garantit pas sa visibilité ou son état.
  • Utilisation de ExpectedConditions.visibility_of_all_elements_located() : Cette condition garantit que tous les éléments d'un localisateur sont visibles. Cela peut être utilisé pour attendre un nombre spécifique d'éléments visibles, mais cela nécessite que les éléments soient présents dans le DOM dès le début.

Remarque

Les localisateurs CSS_SELECTOR et XPATH utilisés dans l'exemple de code peuvent être modifiés pour correspondre à vos identifiants d'élément spécifiques.

Références :

  • [Comment attendre le numéro d'éléments à charger à l'aide de Selenium et Python](https://stackoverflow.com/questions/27176170/how-to-wait-for-number-of-elements-to-be-loaded-using-selenium-and-python )
  • [Obtenir des éléments spécifiques dans le sélénium](https://stackoverflow.com/questions/35383413/getting-special-elements-in-selenium)

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!

Déclaration:
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