Sobes.tech
Junior — Middle

Selgitage erinevusi otseste, kaudsete ootuste ja pausivõtme mehhanismi vahel programmeerimises või automatiseerimissüsteemides.

sobes.tech AI

Vastus AI-lt

Programmeerimises ja testide automatiseerimises on olemas erinevad ootusetüübid, mis aitavad skriptide täitmist sünkroniseerida rakenduse olekuga:

  • Selged ootused (Explicit waits) — need on ootused, mis on selgelt määratletud koodis ja sunnivad ootama teatud tingimust (näiteks elemendi ilmumist) kindla aja jooksul. Kui tingimus täidetakse varem, jätkub täitmine kohe.

  • Kaudsed ootused (Implicit waits) — see on globaalne seade draiverile, mis sunnib teda ootama teatud aega elementide otsimisel, kui need kohe ei leidu. Kaudsed ootused kehtivad kõigile elementide otsimise operatsioonidele.

  • Ootamise mehhanism pausiga (Sleep) — see on lihtne viivitus täitmisel, mis kestab fikseeritud aja, sõltumata rakenduse olekust. Seda kasutatakse harva, kuna see on ebaefektiivne ja võib aeglustada teste.

Näide Pythonis Seleniumiga:

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()

# Kaudne ootamine
driver.implicitly_wait(10)  # oodata kuni 10 sekundit elementide otsimisel

# Selge ootamine
wait = WebDriverWait(driver, 10)
element = wait.until(EC.presence_of_element_located((By.ID, 'myElement')))

# Paus
time.sleep(5)  # lihtsalt oodata 5 sekundit