Middle
Selenium'da birkaç bekleme türünü adlandırın ve açıklayın.
sobes.tech yapay zeka
AI'dan gelen yanıt
-
İçsel Beklemeler (Implicit Waits)
- WebDriver oturumu boyunca bir kez yapılandırılır.
- WebDriver, bir öğe aranırken
NoSuchElementExceptionistisnasını atmadan önce belirli bir süre bekler. - Bekleme süresi, her
findElement(s)çağrısına uygulanır. - Eğer öğe daha erken bulunursa, WebDriver sona kadar beklemez.
-
Açık Beklemeler (Explicit Waits)
- Belirli bir öğe için belirli bir koşula uygulanır.
- WebDriver, belirli bir maksimum süre içinde koşulun yerine getirilmesini bekler.
- Koşul daha erken yerine getirilirse, kod devam eder.
- Koşul maksimum sürede yerine getirilmezse,
TimeoutExceptionistisnası atılır. - Genellikle
WebDriverWaitveExpectedConditionsile kullanılır.
// Açık Bekleme örneği WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10)); WebElement element = wait.until(ExpectedConditions.elementToBeClickable(By.id("myButton"))); -
Akış Beklemeleri (Fluent Waits)
- Açık Beklemelerin daha gelişmiş bir versiyonudur.
- Sadece maksimum bekleme süresini değil, aynı zamanda:
- Koşulun kontrol edilme sıklığını (polling interval).
- Bekleme sırasında yoksayılacak istisnaları belirlemeye izin verir.
// Akış Beklemesi örneği 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")));
Özet tablo:
| Bekleme Türü | Uygulama Alanı | Esneklik | İstisna İşleme | Kullanım |
|---|---|---|---|---|
| İçsel Bekleme | Tüm WebDriver oturumu | Düşük (sabit zaman) | Otomatik | Tüm aramalar için genel bekleme süresi |
| Açık Bekleme | Belirli bir öğe için koşul | Yüksek (tanımlı koşul) | Manuel (TimeoutException) |
Öğenin belirli bir durumunu bekleme |
| Akış Beklemesi | Belirli bir öğe için koşul | Çok yüksek (intervall, yoksay) | Manuel (TimeoutException) |
Daha ince ayar yapılmış bekleme |