Sobes.tech
Middle

Test otomasyonunda açık ve örtük beklenti arasındaki farklar nelerdir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Açık Bekleme (Explicit Wait), belirli bir koşul yerine getirilene kadar veya maksimum bekleme süresi dolana kadar yürütmeyi durduran koddur. Belirli bir öğeye veya olaya yöneliktir.

  • Selenium'daki WebDriverWait, açık beklemenin bir örneğidir.

Gizli Bekleme (Implicit Wait), sürücünün tüm yaşamı boyunca uygulanan bir ayardır. Sürücüye, bir öğeyi ararken NoSuchElementException hatası atmadan önce belirli bir süre beklemesini söyler. Eğer öğe daha erken görünürse, bekleme sona erer.

  • Bu, tüm sürücü oturumu için bir kez ayarlanır.

Ana farklar:

Özellik Açık Bekleme Gizli Bekleme
Uygulama Belirli bir koşul / öğe için Tüm sürücü oturumu için
Esneklik Yüksek, belirli koşulları bekleyebilir Düşük, sadece öğe görünene kadar bekler
Ayar Her bekleme durumu için ayrı ayrı Tüm sürücü için bir kez ayarlanır
Selenium Örneği WebDriverWait(driver, zaman).until(...) driver.implicitly_wait(zaman)

Python'da açık bekleme örneği (Selenium):

# Öğenin görünür olmasını bekle
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

try:
    element = WebDriverWait(driver, 10).until(
        EC.visibility_of_element_located((By.ID, "benim_element_id"))
    )
finally:
    # Beklemeden sonra yapılacak işlemler veya TimeoutException yönetimi
    pass

Python'da gizli bekleme örneği (Selenium):

# Gizli beklemeyi ayarla
driver.implicitly_wait(10) # 10 saniye bekle, sonra NoSuchElementException at

# Bundan sonra tüm find_element/find_elements bu beklemeyi kullanır
element = driver.find_element(By.ID, "bir_id")

Açık ve gizli beklemelerin birlikte kullanılması, öngörülemeyen davranışlara yol açabilir. Çoğu özel durumda açık beklemelerin kullanılması önerilir; gizli bekleme ise gerekirse veya hiç kullanılmamalıdır, dikkatli olunmalı ve küresel etkisi anlaşılmalıdır. Açık beklemeler, bekleme sürecini daha ince kontrol etmenizi sağlar, bu nedenle tercih edilir.