Différentes méthodes d'attente dans Selenium WebDriver

Différentes méthodes d'attente dans Selenium WebDriver

Voici les différents types de méthodes d'attente disponibles dans Selenium WebDriver:

  • Implicit Wait

WebDriver attend pendant un certain temps jusqu'à ce que tous les éléments de la page soient chargés. Cela peut être utile lorsque certains éléments de la page Web ne sont pas disponibles immédiatement et nécessitent un certain temps pour se charger (elle s’applique sur tout le drive).

driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS);
        

  • Explicit Wait

WebDriver attendra un élément spécifique sur la page jusqu'à ce que la condition donnée soit satisfaite. Cela peut être utile si l'un des éléments prend plus de temps à se charger par rapport aux autres éléments de la page (elle s’applique pas sur tous le drive elle s’applique que sur l’element qu’on le cherche donc on la déclare avant chaque déclaration d’un élement).

driver.findElement(By.xpath("//a[text()=' Sign Up Here']")).click();

WebDriverWait wait = new WebDriverWait(driver,10);



        
wait.until(ExpectedConditions.presenceOfElementLocated(By.id("firstName"))).sendKeys("qascript");
        

  • Fluent Wait

Il indique au webdriver d'attendre une condition, ainsi que la fréquence à laquelle vérifier la condition.

Wait<WebDriver> wait1 = new FluentWait<>(driver)
.withTimeout(Duration.ofSeconds(30))
.pollingEvery(Duration.ofSeconds(5))
.ignoring(NoSuchElementException.class);

WebElement element = wait1.until(new Function<WebDriver, WebElement>() {
@Override
public WebElement apply(WebDriver driver) {
return driver.findElement(By.id("firstName"));
}
});
        
element.sendKeys("qascript");
        

PageLoad Timeout

Définit la durée d'attente du chargement d'une page avant de générer une erreur.

driver.manage().timeouts().pageLoadTimeout(30,TimeUnit.SECONDS);
        

SetScript Timeout

Définit la durée d'attente d'un script asynchrone pour terminer l'exécution avant de générer une erreur.

driver.manage().timeouts().setScriptTimeout(30,TimeUnit.SECONDS);
        







Mohamed Mediouni

PHP | JS | WordPress Developer & Freelancer 🚀

6 mois

Très intéressant ✅🚀

Identifiez-vous pour afficher ou ajouter un commentaire

Autres pages consultées

Explorer les sujets