Maison >développement back-end >Tutoriel Python >Comment attendre de manière fiable que les éléments soient présents, visibles et cliquables dans Selenium ?

Comment attendre de manière fiable que les éléments soient présents, visibles et cliquables dans Selenium ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-21 05:19:10982parcourir

How to Reliably Wait for Elements to Be Present, Visible, and Clickable in Selenium?

Attendre qu'un élément soit présent, visible et interagissable avec Selenium

Dans Selenium, il est souvent nécessaire d'attendre qu'un élément apparaisse avant d'interagir avec lui. Utiliser sleep() pour attendre n'est pas fiable, car le temps d'apparition de l'élément peut varier. Au lieu de cela, vous devez exploiter WebDriverWait et les conditions attendues.

En attente de la présence d'un élément

Pour vérifier la présence d'un élément sur le DOM, définissez les conditions_attendues sur présence_of_element_located(). Cela ne nécessite pas que l'élément soit visible. Par exemple :

WebDriverWait(browser, 20).until(EC.presence_of_element_located((By.CSS_SELECTOR, ".reply-button"))).click()

En attente de la visibilité d'un élément

Pour extraire un attribut d'un élément, utilisez visibilité_of_element_located(). Cela garantit que l'élément est visible et a des dimensions non nulles.

email = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, ".anonemail"))).get_attribute("value")

En attente de la cliquabilité de l'élément

Pour cliquer sur un élément, définissez Expected_conditions sur element_to_be_clickable() . Cela vérifie si l'élément est visible et activé pour l'interaction.

WebDriverWait(browser, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, ".reply-button"))).click()

Références supplémentaires

Pour plus d'informations, reportez-vous aux ressources suivantes :

  • [WebDriverWait ne fonctionne pas comme attendu](https://github.com/SeleniumHQ/selenium-google-code-issue-archive/issues/4395)
  • [Selenium : vérifier la présence d'un élément](https://www. guru99.com/verify-element-present-selenium.html)

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