Sobes.tech
Middle

Noem enkele soorten wachttijden in Selenium en leg ze uit.

sobes.tech AI

Antwoord van AI

  1. Implicit Waits (Impliceit wachten)

    • Wordt één keer ingesteld voor de hele WebDriver-sessie.
    • WebDriver wacht een bepaalde tijd voordat het een NoSuchElementException gooit bij het zoeken naar een element.
    • De wachttijd geldt voor elke aanroep van findElement(s).
    • Als het element eerder wordt gevonden, wacht WebDriver niet tot het einde.
  2. Explicit Waits (Expliciete wachten)

    • Worden toegepast op een specifieke voorwaarde voor een bepaald element.
    • WebDriver wacht tot de voorwaarde wordt voldaan binnen een ingestelde maximale tijd.
    • Als de voorwaarde eerder wordt voldaan, gaat de code verder.
    • Als niet binnen de maximale tijd, wordt een TimeoutException gegooid.
    • Wordt meestal gebruikt met de klasse WebDriverWait en ExpectedConditions.
    // Voorbeeld van expliciete wacht
    WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10));
    WebElement element = wait.until(ExpectedConditions.elementToBeClickable(By.id("myButton")));
    
  3. Fluent Waits (Vloeiende wachten)

    • Een meer geavanceerde versie van expliciete wachten.
    • Maakt het mogelijk niet alleen de maximale wachttijd te definiëren, maar ook:
      • De frequentie van het controleren van de voorwaarde (polling interval).
      • De typen uitzonderingen die genegeerd moeten worden tijdens het wachten.
    // Voorbeeld van vloeiende wachten
    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")));
    

Samenvattingstabel:

Type wachten Toepassingsgebied Flexibiliteit Afhandeling van uitzonderingen Gebruik
Impliceit wachten Hele WebDriver-sessie Laag (vast tijdsduur) Automatisch Algemene wachttijd voor alle zoekopdrachten
Expliciet wachten Specifieke voorwaarde voor een element Hoog (gedefinieerde voorwaarde) Handmatig (TimeoutException) Wachten op een specifieke toestand van het element
Vloeiend wachten Specifieke voorwaarde voor een element Zeer hoog (interval, negeren) Handmatig (TimeoutException) Fijnere afstelling van wachten