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
-
İmplicit Gözləmələr (Implicit Waits)
- WebDriver sessiyası üçün bir dəfə konfiqurasiya olunur.
- WebDriver, element axtarışında
NoSuchElementExceptionistisnası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.
-
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ə,
TimeoutExceptionatılır. - Adətən
WebDriverWaitvəExpectedConditionsilə 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"))); -
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ə |