В Чём Различие Между ‘Implicit wait’ и ‘Explicit wait’?
🔹 Implicit Wait (Неявное ожидание)
Устанавливается один раз для всего драйвера.
Говорит Selenium: «ждать до X секунд, пока элемент не появится на странице».
Если элемент найден быстрее — ожидание прекращается сразу.
Применяется ко всем элементам.
Пример (Python):
from selenium import webdriver
driver = webdriver.Chrome()
driver.implicitly_wait(10) # ждать до 10 секунд для всех find_element
driver.get("https://example.com")
element = driver.find_element("id", "username") # будет ждать максимум 10 сек
🔹 Explicit Wait (Явное ожидание)
Настраивается для конкретного элемента или условия.
Использует
WebDriverWait
+expected_conditions
.Можно ожидать не только появления элемента, но и:
его кликабельности,
исчезновения,
наличия текста,
и других условий.
Пример:
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.element_to_be_clickable((By.ID, "login-btn")))
element.click()
📌 Основные различия
Область действия
Все элементы
Конкретный элемент/условие
Гибкость
Только поиск элемента
Разные условия (клик, текст, исчезновение)
Настройка
Один раз на драйвер
Каждый раз отдельно
Использование вместе
Можно, но не рекомендуется (могут быть конфликты)
👉 Простыми словами:
Implicit wait — глобальное «подождать чуть-чуть при каждом поиске элемента».
Explicit wait — «подождать именно для этого элемента, пока он будет готов».
Last updated
Was this helpful?