# В Чём Различие Между ‘Implicit wait’ и ‘Explicit wait’?

#### 🔹 **Implicit Wait (Неявное ожидание)**

* Устанавливается **один раз** для всего драйвера.
* Говорит Selenium: *«ждать до X секунд, пока элемент не появится на странице»*.
* Если элемент найден быстрее — ожидание прекращается сразу.
* Применяется **ко всем элементам**.

Пример (Python):

```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`.
* Можно ожидать не только появления элемента, но и:
  * его кликабельности,
  * исчезновения,
  * наличия текста,
  * и других условий.

Пример:

```python
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                              |
| -------------------- | ------------------------------------------------- | ------------------------------------------ |
| Область действия     | Все элементы                                      | Конкретный элемент/условие                 |
| Гибкость             | Только поиск элемента                             | Разные условия (клик, текст, исчезновение) |
| Настройка            | Один раз на драйвер                               | Каждый раз отдельно                        |
| Использование вместе | Можно, но не рекомендуется (могут быть конфликты) |                                            |

***

👉 Простыми словами:

* **Implicit wait** — глобальное «подождать чуть-чуть при каждом поиске элемента».
* **Explicit wait** — «подождать именно для этого элемента, пока он будет готов».


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://kaze.gitbook.io/qa-theory/teoriya-avtomatizirovannogo-testirovaniya/obshie-voprosy/v-chyom-razlichie-mezhdu-implicit-wait-i-explicit-wait.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
