Je suis un débutant. Je comprends essentiellement ce que fait l'attente, mais je ne sais pas comment différents tutoriels sur Internet le placent et l'expliquent. Par exemple, dans le code ci-dessous, il est placé avant le chargement de l'URL. Alors, est-ce seulement pour attendre que l'URL soit chargée ou pour trouver l'élément ou les deux? Est-il vrai que si j'utilise une attente implicite une fois dans mon bloc try, elle sera applicable pour chaque recherche d'élément que j'effectue dans mon code?

from selenium import webdriver
driver = webdriver.Firefox()
driver.implicitly_wait(10) # seconds
driver.get("http://somedomain/url_that_delays_loading")
myDynamicElement = driver.find_element_by_id("myDynamicElement")
0
Shivam Mishra 14 août 2017 à 13:39

2 réponses

Oui, implicit_wait est globalement applicable. donc une fois que vous avez défini, il est appliqué à tous les éléments.

Je ne suggérerais pas d'utiliser implicit_wait à moins que votre application ne soit trop lente. Vous pouvez utiliser explicit wait ou toute autre attente en fonction de vos besoins sur la page suivante.

C'est un JAVADOC mais l'implémentation devrait être la même pour python également.

https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/WebDriver.Timeouts.html#implicitlyWait-long-java.util.concurrent.TimeUnit-

1
Gaurang Shah 14 août 2017 à 10:48

L'attente implicite s'applique à tous les éléments Web où l'attente explicite s'applique uniquement à l'élément spécifié.

L'attente explicite est plus intelligente et est vraiment utilisée pleinement dans la gestion d'Ajax, tandis que l'attente implicite est généralement utilisée pour gérer les problèmes de synchronisation des applications.

1
Arun Ghosh 14 août 2017 à 13:12