Sobes.tech
Middle

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.