Sobes.tech
Junior — Middle

Explicați diferențele dintre așteptările explicite, implicite și mecanismul de așteptare a pauzei în programare sau sistem de automatizare.

sobes.tech AI

Răspuns de la AI

În programare și automatizarea testelor, există diferite tipuri de așteptări care ajută la sincronizarea execuției scripturilor cu starea aplicației:

  • Așteptări explicite (Explicit waits) — sunt așteptări stabilite explicit în cod și care forțează așteptarea unei anumite condiții (de exemplu, apariția unui element) pentru o perioadă de timp determinată. Dacă condiția se îndeplinește mai devreme, execuția continuă imediat.

  • Așteptări implicite (Implicit waits) — sunt o setare globală pentru driver, care îl face să aștepte un anumit timp la căutarea elementelor dacă acestea nu sunt găsite imediat. Așteptările implicite se aplică tuturor operațiunilor de căutare a elementelor.

  • Mecanismul de așteptare cu pauză (Sleep) — este o întârziere simplă a execuției pentru un timp fix, indiferent de starea aplicației. Este folosită rar, deoarece este ineficientă și poate încetini testele.

Exemplu în Python cu Selenium:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time

driver = webdriver.Chrome()

# Așteptare implicită
driver.implicitly_wait(10)  # așteaptă până la 10 secunde la căutarea elementelor

# Așteptare explicită
wait = WebDriverWait(driver, 10)
element = wait.until(EC.presence_of_element_located((By.ID, 'myElement')))

# Pauză
time.sleep(5)  # pur și simplu așteaptă 5 secunde