Sobes.tech
Junior — Middle

Puoi spiegare cos'è il meccanismo di attesa esteso Fluent Wait nei test automatizzati o nella programmazione?

sobes.tech AI

Risposta dell'AI

Fluent Wait è un meccanismo avanzato di attesa nei test automatizzati che consente di configurare in modo flessibile il processo di attesa della comparsa di un elemento o del verificarsi di una condizione. A differenza dell’attesa esplicita semplice, Fluent Wait permette di definire:

  • Il tempo massimo di attesa
  • La frequenza di polling (ogni quanto verificare la condizione)
  • Le eccezioni da ignorare durante l’attesa (ad esempio, NoSuchElementException)

Questo è utile quando un elemento può apparire con ritardo o cambiare dinamicamente, e non basta aspettare un tempo fisso, ma si verifica la condizione a intervalli regolari ignorando errori temporanei.

Esempio in Java con Selenium:

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

WebElement element = wait.until(driver -> driver.findElement(By.id("myElement")));

Qui aspettiamo fino a 30 secondi, verificando ogni 5 secondi la presenza dell’elemento, ignorando le eccezioni se l’elemento è temporaneamente non trovato.