В чем разница между Implicit wait Vs. Явное ожидание в selenium webdriver?
Просьба поделиться знаниями о selenium webdriver. Пожалуйста, покажите пример в реальном времени.
Ответы
Ответ 1
Проверьте ссылки ниже:
-
Implicit Wait
- Он инструктирует веб-драйвер ждать некоторое время, опросив DOM. После того, как вы объявите неявное ожидание, он будет доступен для всей жизни экземпляра веб-драйвера. По умолчанию значение будет равно 0. Если вы установите более длинное значение по умолчанию, тогда поведение будет периодически опроса DOM в зависимости от реализации браузера/драйвера.
-
Explicit Wait
+ ExpectedConditions
- Это обычная. Он будет использоваться, если мы хотим, чтобы выполнение подождало некоторое время, пока не достигнуто какое-либо условие.
Ответ 2
Неявное ожидание -
Неявные ожидания - это в основном ваш способ сообщить WebDriver о задержке, которую вы хотите увидеть, если указанный веб-элемент отсутствует, что ищет WebDriver. Поэтому в этом случае вы сообщаете WebDriver, что он должен ждать 10 секунд в случаях, когда указанный элемент недоступен в пользовательском интерфейсе (DOM).
Явное ожидание -
Явные ожидания - это интеллектуальные ожидания, которые ограничены определенным веб-элементом. Используя явные ожидания, вы в основном говорите WebDriver на максимуме, чтобы ждать X единиц времени, прежде чем он откажется.
Ответ 3
Отличия:
1) Неявное ожидание устанавливается для всей продолжительности объекта webDriver. Предположим, вы хотите дождаться определенной продолжительности, пусть говорят за 5 секунд до каждого элемента или много элементов на загрузке веб-страницы.
Теперь вы не захотите писать тот же код снова и снова. Следовательно, неявное ожидание.
Однако, если вы хотите подождать только одного элемента, используйте явно.
2) Вам не только нужен веб-элемент для отображения, но и для интерактивного просмотра или для удовлетворения некоторого другого свойства веб-элементов. Такая гибкость может быть обеспечена только явным ожиданием. Особенно полезно, если динамические данные загружаются на веб-страницу. Вы можете дождаться, когда этот элемент будет разработан (а не только на DOM), используя явное ожидание.
Ответ 4
Добавление другой точки зрения к вышеупомянутым решениям.
Неявный Wait: При создании он жив, пока объект WebDriver не умрет. И это похоже на общее для всех операций.
Принимая во внимание,
Явное ожидание, может быть объявлено для конкретной операции в зависимости от поведения webElement. Он имеет преимущество настройки времени опроса и удовлетворения условия.
Например, мы объявили неявный Wait of 10 secs, но элемент занимает больше, например, 20 секунд, а иногда может появиться через 5 секунд, поэтому в этом сценарии объявлен явный ожидание.
Ответ 5
Неявные ожидания используются для предоставления времени ожидания по умолчанию между каждым последовательным тестовым шагом/командой по всему тесту script. Таким образом, последующий тестовый шаг будет выполняться только тогда, когда истечет указанный промежуток времени после выполнения предыдущего шага/команды теста.
Явные ожидания используются, чтобы остановить выполнение до тех пор, пока не будет выполнено конкретное условие или не истечет максимальное время. В отличие от неявных ожиданий, явные ожидания применяются только для конкретного экземпляра.
Ответ 6
Моя мысль,
Неявная ожидаемая. Если задано значение ожидания, оно будет ожидать определенное количество времени для каждого вызова findElement/findElements. Он выдает исключение, если действие не завершено.
Явная ожидаемая. Если задано ожидание, он будет ждать и перейти к следующему шагу, когда условие будет истинным, иначе оно выкинет исключение после ожидания указанного времени. Явное ожидание применимо только один раз, где указано.