@zlodiak

Почему явное ожидание ждёт вечно?

В документации написано, что явный тип ожидания(Explicit Waits) или:
1. найдёт элемент при первой возможности и продолжит выполнение программы
2. если в течение определённого времени не найдёт элемент, то тоже продолжит выполнение программы

Следующей конструкцией я пытаюсь искать элемент в течение 10 секунд(это максимальное время ожидания) и затем продолжать выполнение программы:
try:
    show_phone_el = WebDriverWait(self.driver, 10).until(
        EC.presence_of_element_located((By.CSS_SELECTOR, self.show_phone_selector))               
    )
    num = self.blabla(show_phone_el)
    return num
except NoSuchElementException as e:
    print(e)


Проблема в том, что программа в этом куске кода ждёт пока элемент не будет найден на странице, а это в разы больше 10 секунд. То есть по сути ожидание может затянуться навечно.

Скажите пожалуйста, как мне заставить программу искать элемент элемент на страничке не более 10 секунд, а затем продолжать выполнение дальше?
  • Вопрос задан
  • 120 просмотров
Пригласить эксперта
Ответы на вопрос 1
kshnkvn
@kshnkvn
yay ✌️ t.me/kshnkvn
Я не совсем понял вашего вопроса, но 10 - это не в течении какого времени скрипт будет искать результат, а сколько скрипт готов ждать, пока не найдет результат. Т.е. если результат на странице был найден за 2 секунды, то программа сразу-же продолжит выполняться, если в течении 10 секунд результат найден не был, то вызывается блок except.
И 10 секунд - это НЕ максимальное значение, вы можете выставить столько, сколько считаете нужным.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы