Sobes.tech
Junior — Middle

Vysvetlite rozdiely medzi explicitnými, implicitnými očakávaniami a mechanizmom čakania na pauzu v programovaní alebo systéme automatizácie.

sobes.tech AI

Odpoveď od AI

V programovaní a automatizácii testov existujú rôzne typy očakávaní, ktoré pomáhajú synchronizovať vykonávanie skriptov s stavom aplikácie:

  • Explicitné očakávania (Explicit waits) — sú to očakávania, ktoré sú jasne nastavené v kóde a nútia čakať na určitú podmienku (napríklad, zobrazenie prvku) počas stanoveného času. Ak sa podmienka splní skôr, vykonávanie pokračuje okamžite.

  • Implicitné očakávania (Implicit waits) — je to globálna konfigurácia pre ovládač, ktorá ho núti čakať určitý čas pri hľadaní prvkov, ak nie sú okamžite nájdené. Implicitné očakávania platia pre všetky operácie hľadania prvkov.

  • Mechanizmus čakania s pauzou (Sleep) — je to jednoduché oneskorenie vykonávania na pevne stanovený čas, bez ohľadu na stav aplikácie. Používa sa zriedka, pretože je neefektívne a môže spomaliť testy.

Príklad v Pythone s 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()

# Implicitné očakávanie
driver.implicitly_wait(10)  # čakať až 10 sekúnd pri hľadaní prvkov

# Explicitné očakávanie
wait = WebDriverWait(driver, 10)
element = wait.until(EC.presence_of_element_located((By.ID, 'myElement')))

# Pauza
time.sleep(5)  # jednoducho počkať 5 sekúnd