Test avtomatlashuvi kontekstida aniq va noaniq kutishlar o'rtasidagi farqlar nima?
sobes.tech AI
AIdan javob
Aydınlıqla gözləmə (Explicit Wait) müəyyən bir şərt yerinə yetirilənə qədər və ya maksimum gözləmə vaxtı keçənə qədər icraatı dayandıran koddur. O, konkret element və ya hadisəyə yönəlib.
- Selenium-da
WebDriverWait, aydınlıqla gözləmənin nümunəsidir.
Qeyri-müəyyən gözləmə (Implicit Wait) sürücüyə onun bütün ömrü boyunca tətbiq olunan tənzimləməsidir. Bu, sürücüyə element axtarışında NoSuchElementException istisnasını atmazdan əvvəl müəyyən bir vaxt gözləməyi göstəricidir. Əgər element daha əvvəl görünərsə, gözləmə sona çatır.
- Bu, bütün sürücü sessiyası üçün bir dəfə qurulur.
Əsas fərqlər:
| Xüsusiyyət | Aydınlıqla gözləmə | Qeyri-müəyyən gözləmə |
|---|---|---|
| Tətbiq | Xüsusi şərt / element üçün | Bütün sürücü sessiyası üçün |
| Əlverişlilik | Yüksək, xüsusi şərtləri gözləyə bilər | Aşağı, yalnız elementin görünməsini gözləyir |
| Tənzimləmə | Hər gözləmə halı üçün ayrıca | Bütün sürücü üçün bir dəfə |
| Selenium nümunəsi | WebDriverWait(driver, vaxt).until(...) |
driver.implicitly_wait(vaxt) |
Python-da aydınlıqla gözləmə nümunəsi (Selenium):
# Elementin görünən olmasını gözləyin
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, "mənim_element_id"))
)
finally:
# Gözləmədən sonra əməliyyatlar və ya TimeoutException-in idarə olunması
pass
Python-da qeyri-müəyyən gözləmə nümunəsi (Selenium):
# Qeyri-müəyyən gözləməni qurun
driver.implicitly_wait(10) # 10 saniyə gözləyin, sonra `NoSuchElementException` atılır
# Bundan sonra bütün find_element/find_elements bu gözləməni istifadə edəcək
element = driver.find_element(By.ID, "hansı_id")
Aydınlıqla və qeyri-müəyyən gözləmələrin birlikdə istifadəsi proqnozlaşdırılmayan davranışlara səbəb ola bilər. Ən çox xüsusi hallarda aydınlıqla gözləmələrdən istifadə etmək tövsiyə olunur; qeyri-müəyyən isə yalnız lazım olduqda və ya ümumiyyətlə istifadə edilməməlidir, ehtiyatla və onun qlobal təsirini başa düşərək. Aydınlıqla gözləmələr daha üstün sayılır, çünki onlar gözləmə prosesinə daha incə nəzarət imkanı verir.