Sobes.tech
Middle

ტესტირების ავტომატიზაციის კონტექსტში გამოთქმული და გამოთქმული მოლოდინების განსხვავებები რა არის?

sobes.tech AI

პასუხი AI-სგან

გამოყენება (Explicit Wait) — ეს კოდი, რომელიც აჩერებს შესრულებას, სანამ გარკვეული პირობა არ შესრულდება ან მაქსიმალური սպասვის დრო არ ამოიწურება. ის მიმართულია კონკრეტულ ელემენტზე ან მოვლენის მიმართ.

  • WebDriverWait Selenium-ში არის მაგალითი გამოკვეთილი მოლოდინის.

მიმწვანე მოლოდინი (Implicit Wait) — ეს არის კონფიგურაცია, რომელიც ვრცელდება მძღოლზე მთელი მისი სიცოცხლის განმავლობაში. იგი მიუთითებს მძღოლს, რომ ელოდოს გარკვეულ დროს, სანამ გამოიწვევს გამონაკლისს NoSuchElementException ელემენტის ძიებისას. თუ ელემენტი ადრე გამოჩნდება, მოლოდინი შეწყდება.

  • ერთჯერადად ინიშნება მთელი სესიის განმავლობაში.

ძირითადი განსხვავებები:

ნიშნული გამოკვეთილი მოლოდინი დამალული მოლოდინი
გამოყენება კონკრეტული პირობა / ელემენტზე მთელ სესიაზე
მორგებადობა მაღალი, შეიძლება ელოდოს კონკრეტულ პირობებს დაბალი, ელოდება მხოლოდ ელემტის გამოჩენას
კონფიგურაცია თითო შემთხვევისთვის ცალკე ერთჯერადად მთელი მძღოლისთვის
Selenium მაგალითი WebDriverWait(driver, time).until(...) driver.implicitly_wait(time)

Python-ში გამოკვეთილი მოლოდინის მაგალითი (Selenium):

# ელემენტის ხილვადობის მოლოდინი
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, "my_element_id"))
    )
finally:
    # მოქმედებები მოლოდინიდან გამომდინარე ან TimeoutException-ის დამუშავება
    pass

დამალული მოლოდინის მაგალითი Python-ში (Selenium):

# დამალული მოლოდინის დაყენება
driver.implicitly_wait(10) # ელოდება 10 წამამდე, სანამ გამოიწვევს `NoSuchElementException`

# შემდეგ ყველა find_element/find_elements გამოიყენებს ამ მოლოდინს
ელემენტი = driver.find_element(By.ID, "some_id")

გამოკვეთილი და დამალული მოლოდინების ერთობლივი გამოყენება შეიძლება გამოიწვიოს გაუთვალისწინებელი ქცევით. რეკომენდირებულია გამოკვეთილი მოლოდინების გამოყენება უმეტეს სპეციფიკურ შემთხვევებში, ხოლო დამალული — ან საერთოდ არ გამოიყენოთ, ან გამოიყენოთ ფრთხილად და მისი გლობალური მოქმედების გაგებით. გამოკვეთილი მოლოდინები უმჯობესია, რადგან უზრუნველყოფს უფრო ზუსტ კონტროლს მოლოდინის პროცესზე.