Rethinking Implicit Waits with Explicit Waits in Selenium Webdriver for Java
In the context of automated testing with Selenium Webdriver in Java, the question arises: how can we replace implicit waits with explicit les?
Comprendre la distinction
Les attentes implicites sont des paramètres globaux appliqués à une instance de pilote, définissant le temps d'attente maximal pour localiser les éléments Web. En revanche, des attentes explicites sont utilisées pour suspendre temporairement l'exécution jusqu'à ce qu'une condition spécifique soit remplie, généralement en ce qui concerne la présence ou l'état d'un élément Web particulier.
Remplacement des attentes implicites par des attentes explicites
Le code extrait fourni initialise un chromedriver avec une configuration. Il définit également une attente implicite de 10 secondes en utilisant Driver.Manage (). Timeouts (). ImplicitlyWait (). Ce 設定 spécifie que le conducteur attendra jusqu'à 10 secondes pour trouver un élément avant de lancer une exception.
tandis que les attentes explicites peuvent remplacer les instructions de thread.sleep (), ils ne peuvent pas directement remplacer les attentes implicites. Les attentes implicites s'appliquent à toutes les commandes de recherche d'éléments, tandis que les attentes explicites doivent être utilisées en combinaison avec des conditions personnalisées.
Exemple d'attente explicite:
WebDriverWait wait = new WebDriverWait(driver, 10); WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("my-element")));
Dans cet exemple, nous créons une instance WebDriverWait et spécifions un délai de 10 secondes. La méthode tort () prend une instance de la condition attendue comme argument, qui définit la condition que le conducteur devrait attendre. Dans ce cas, nous attendons que l'élément avec ID "My-Element" devienne visible.
Conclusion
Les attentes implicites sont des paramètres globaux qui peuvent accélérer l'exécution du test lorsqu'ils sont appliqués judicieusement. Cependant, ils peuvent également entraîner des attentes inutilement longues ou un masquage de problèmes sous-jacents. Les attentes explicites offrent un contrôle plus granulaire et peuvent être utilisés pour vérifier les conditions spécifiques. Bien qu'ils ne puissent pas directement "remplacer" des attentes implicites, ils peuvent être un outil précieux dans une suite de tests.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3