Veuillez partager les connaissances sur le pilote Web Selenium. Veuillez montrer l'exemple en temps réel.
Consultez les liens ci-dessous:
Implicit Wait
- Il demande au pilote Web d'attendre un certain temps en interrogeant le DOM. Une fois que vous avez déclaré l'attente implicite, il sera disponible pendant toute la durée de vie de l'instance de pilote Web. Par défaut, la valeur sera 0. Si vous définissez une valeur par défaut plus longue, le comportement interrogera périodiquement le DOM en fonction de l'implémentation du navigateur/pilote.
Explicit Wait
+ ExpectedConditions
- C'est celui personnalisé. Il sera utilisé si nous voulons que l'exécution attende un certain temps jusqu'à ce qu'une condition soit atteinte.
Attente implicite -
Les attentes implicites sont essentiellement votre moyen d'indiquer à WebDriver la latence que vous souhaitez voir si l'élément Web spécifié n'est pas présent que WebDriver recherche. Donc, dans ce cas, vous dites à WebDriver qu'il doit attendre 10 secondes dans le cas d'un élément spécifié non disponible sur l'interface utilisateur (DOM).
Attente explicite -
Les attentes explicites sont des attentes intelligentes qui sont limitées à un élément Web particulier. En utilisant des attentes explicites, vous dites au WebDriver au maximum qu'il doit attendre X unités de temps avant d'abandonner.
Différences:
1) L'attente implicite est définie pour toute la durée de l'objet webDriver. Supposons que vous souhaitiez attendre une certaine durée, disons 5 secondes avant chaque élément ou beaucoup d'éléments sur la page Web. Maintenant, vous ne voudriez pas écrire le même code encore et encore. Par conséquent, attente implicite. Cependant, si vous souhaitez attendre un seul élément, utilisez explicit.
2) Vous avez non seulement besoin d'un élément Web pour apparaître, mais également pour être cliquable ou pour satisfaire certaines autres propriétés des éléments Web. Ce type de flexibilité ne peut être fourni que par une attente explicite. Particulièrement utile si des données dynamiques sont chargées sur une page Web. Vous pouvez attendre que cet élément soit développé (pas seulement apparaître sur DOM) en utilisant une attente explicite.
Ajout d'un autre point de vue aux solutions mentionnées ci-dessus.
Attente implicite: Une fois créé, est vivant jusqu'à ce que l'objet WebDriver meure. Et est comme commun à toutes les opérations.
Tandis que,
Attente explicite, peut être déclaré pour une opération particulière en fonction du comportement de webElement. Il a l'avantage de personnaliser le temps de scrutin et la satisfaction de la condition.
Par exemple, nous avons déclaré l'attente implicite de 10 secondes, mais un élément prend plus que cela, disons 20 secondes et peut parfois apparaître sur 5 secondes, donc dans ce scénario, l'attente explicite est déclarée.
Ma pensée,
Attente implicite: Si wait est défini, il attendra la durée spécifiée pour chaque appel findElement/findElements. Il lèvera une exception si l'action n'est pas terminée.
Attente explicite: Si l'attente est définie, elle attendra et passera à l'étape suivante lorsque la condition fournie devient vraie, sinon elle lèvera une exception après avoir attendu le temps spécifié. L'attente explicite n'est applicable qu'une seule fois où spécifié.
Les attentes implicites sont utilisées pour fournir un temps d'attente par défaut entre chaque étape/commande de test consécutive sur l'ensemble du script de test. Ainsi, l'étape de test suivante ne s'exécuterait que lorsque la durée spécifiée s'est écoulée après l'exécution de l'étape/commande de test précédente.
Des attentes explicites sont utilisées pour arrêter l'exécution jusqu'à ce qu'une condition particulière soit remplie ou que le temps maximum se soit écoulé. Contrairement aux attentes implicites, les attentes explicites sont appliquées à une instance particulière uniquement.