Sobes.tech
Middle

Selenium-də bir neçə gözləmə növünü adlandırın və izah edin.

sobes.tech Süni İntellekt

AI-dan cavab

  1. İmplicit Gözləmələr (Implicit Waits)

    • WebDriver sessiyası üçün bir dəfə konfiqurasiya olunur.
    • WebDriver, element axtarışında NoSuchElementException istisnasını atmazdan əvvəl müəyyən bir vaxt gözləyəcək.
    • Gözləmə müddəti hər findElement(s) çağırışına tətbiq olunur.
    • Əgər element daha əvvəl tapılırsa, WebDriver sona qədər gözləməz.
  2. Açıq Gözləmələr (Explicit Waits)

    • Müəyyən bir element üçün xüsusi şərtə tətbiq olunur.
    • WebDriver, maksimum təyin olunmuş müddət ərzində şərtin yerinə yetirilməsini gözləyəcək.
    • Əgər şərt daha əvvəl yerinə yetirilərsə, kod davam edir.
    • Əks halda, maksimum müddət ərzində, TimeoutException atılır.
    • Adətən WebDriverWaitExpectedConditions ilə istifadə olunur.
    // Açıq Gözləmə nümunəsi
    WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10));
    WebElement element = wait.until(ExpectedConditions.elementToBeClickable(By.id("myButton")));
    
  3. Axın Gözləmələri (Fluent Waits)

    • Daha inkişaf etmiş bir növ Açıq Gözləmələr.
    • Yalnız maksimum gözləmə vaxtını deyil, həm də:
      • Şərtin yoxlanma intervalını (polling interval).
      • Gözləmə zamanı nəzərə alınmayacaq istisnaları təyin etməyə imkan verir.
    // Axın Gözləməsi nümunəsi
    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")));
    

Xülasə cədvəli:

Gözləmə Növü Tətbiq sahəsi Elastiklik İstisna İdarəetməsi İstifadə
İmplicit Gözləmə Bütün WebDriver sessiyası Aşağı (sabit vaxt) Avtomatik Bütün axtarışlar üçün ümumi gözləmə müddəti
Açıq Gözləmə Xüsusi şərt üçün element Yüksək (təyin olunmuş şərt) Əl ilə (TimeoutException) Elementin müəyyən bir vəziyyətini gözləmə
Axın Gözləməsi Xüsusi şərt üçün element Çox yüksək (intervall, ignore) Əl ilə (TimeoutException) Daha incə tənzimləmə üçün gözləmə