Selenium ile Element Bekleme Ayarları
Selenium kullanırken en kritik noktalardan biri, sayfadaki elementlerin uygun zamanda ve doğru durumda olup olmadığını kontrol etmektir. Web sayfaları dinamik yapıdaki içeriklerle çalıştığından, elementlerin hazır hale gelmesini beklemek, testlerin başarısı ve stabilitesi için hayati öneme sahiptir. Bu noktada, Selenium’un sağladığı bekleme (wait) mekanizmaları devreye girer ve test scriptinizin başarısını artırır.
İki temel bekleme türü vardır:
Explicit Wait (Açık Bekleme) ve
Implicit Wait (Gizli Bekleme).
Implicit Wait, genel olarak tüm sürücüye uygulanır ve belirli bir süre boyunca, element bulunamadığında otomatik olarak tekrar dener. Bu sürenin aşılması halinde, element bulunamadı hatası alınır. Kullanımı basittir:
1driver.implicitly_wait(10); // 10 saniye
Burada, sürücü 10 saniyeye kadar elementleri arar ve bulursa devam eder.
Ancak,
Explicit Wait, belirli bir koşul sağlanana kadar bekler. Bu, daha esnek ve kontrollü bir bekleme sağlar. En sık kullanılan sınıf
WebDriverWait ve
expected_conditions ile kullanılır. Örneğin:
123456from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
wait = WebDriverWait(driver, 15)
element = wait.until(EC.element_to_be_clickable((By.ID, 'submitBtn')))
Burada, 15 saniyeye kadar, ‘submitBtn’ id’li element tıklanabilir hale gelene kadar beklenir.
İyi bir bekleme stratejisi, testlerin hızını optimize ederken, başarısızlıkları minimize eder. Çok uzun beklemeler, test süresini uzatırken; çok kısa beklemeler, elementlerin henüz hazır olmaması riskini doğurur. Bu nedenle, test ortamına uygun, dinamik ve kontrollü ayarlar yapmak en doğrusudur.
Kullandığınız web sayfasının dinamikliğine göre, explicit wait’leri özellikle form doldurma, buton tıklama veya içerik yüklenmesini beklerken tercih etmek, stabiliteyi artırır ve hataları azaltır.