Junior — Middle
Jakie rodzaje oczekiwań możesz wymienić w kontekście rozwoju oprogramowania?
sobes.tech AI
Odpowiedź od AI
W kontekście rozwoju oprogramowania wyróżnia się kilka typów oczekiwań (expectations), szczególnie w testowaniu i automatyzacji:
- Twarde oczekiwania (Hard waits) — stały czas oczekiwania, np.
sleep(5). Rzadko używane, ponieważ są nieefektywne i spowalniają testy. - Wyraźne oczekiwania (Explicit waits) — oczekiwanie na określony warunek lub zdarzenie z limitem czasu. Na przykład oczekiwanie na pojawienie się elementu na stronie.
- Domyślne oczekiwania (Implicit waits) — ustawienie czasu oczekiwania na wyszukiwanie elementów, podczas którego driver będzie wielokrotnie próbował.
- Oczekiwania oparte na zdarzeniach (Event-based waits) — oczekiwanie na wystąpienie określonego zdarzenia, np. zakończenie ładowania pliku.
Przykład wyraźnego oczekiwania w Pythonie z Selenium:
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
wait = WebDriverWait(driver, 10)
element = wait.until(EC.presence_of_element_located((By.ID, 'myElement')))