Comment implémenter des retards dans Selenium-WebDriver à l'aide de Java : attentes implicites et explicites
Dans votre projet Java Selenium-WebDriver, vous avez rencontré des difficultés avec l’emplacement des éléments. Vous aviez ajouté à la fois une attente implicite et un Thread.sleep, et bien que ce dernier ait résolu le problème, vous recherchez une approche plus appropriée.
Attente implicite vs attente explicite
Selenium-WebDriver propose deux types d'attente :
Comparaison
Alors que l'attente implicite est pratique, cela peut entraîner des retards inutiles si l’élément se charge rapidement. L'attente explicite, en revanche, offre plus de contrôle et de flexibilité.
Approche recommandée : attente explicite
Dans votre scénario, l'attente explicite est une solution plus appropriée en raison de les différents temps de chargement de l'interface utilisateur de votre application. L'exemple de code fourni ci-dessous démontre l'utilisation d'une attente explicite :
<code class="java">import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.support.ui.ExpectedConditions; import org.openqa.selenium.support.ui.WebDriverWait; public class ExplicitWaitExample { public static void main(String[] args) { WebDriver driver = getDriver(); WebElement textbox = new WebDriverWait(driver, 30) .until(ExpectedConditions.presenceOfElementLocated(By.id("textbox"))); } }</code>
Cette approche garantit que Selenium attend que l'élément textbox soit présent sur la page avant de continuer, vous permettant d'éviter l'utilisation d'une attente fixe période.
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!