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.