Время ожидания не соблюдается, когда ожидаемое условие не выполняется в Selenium

#python #selenium #webdriverwait #expected-condition

Вопрос:

У меня есть следующий пример кода:

 try:
  element_found = WebDriverWait(driver, 10).until(EC.presence_of_element_located(By.XPATH,'//div[@class='sample-class']))
  print("Success")
except Exception:
  print("Failure")
 

Когда элемент находится, время ожидания составляет 10 секунд, и, следовательно, время, необходимое для печати, 'Success' is <=10 seconds но когда ожидаемое условие не выполняется 'Failure' is 50 seconds , время, необходимое для последовательной печати, увеличивается.

Так почему же 10 seconds limit not honored в случае неудачи? Почему это занимает 50 seconds?

Ответ №1:

Похоже, у тебя есть

 driver.implicitly_wait(30)
 

Неявное ожидание также присутствует в вашем коде.

Вот что чиновники должны сказать о смешении неявного ожидания с явным ожиданием :

Предупреждение: Не смешивайте неявное и явное ожидания. Это может привести к непредсказуемому времени ожидания. Например, установка неявного ожидания в 10 секунд и явного ожидания в 15 секунд может привести к тайм-ауту через 20 секунд.

Ссылка на ссылку