Я много использовал селен, но у меня не было повода использовать WebDriverWait.Теперь мне нужно нажать кнопку «Назад», которая, хотя кажется, что она доступна сразу, иногда не должна появляться в течение доли секунды.Я могу поместить его в цикл с помощью time.sleep (1), и он будет один раз зациклен.Я могу жить с этим, но я подумал, что это прекрасная возможность для реализации WebDriverWait.Это работает:
browser.find_element_by_xpath('//div[@onclick="backToResults();"]')
за исключением случайного исключения NoSuchElementException ...
Это не будет работать, оно просто запускает 3 секунды и время ожидания (независимо от количества времени, которое я пытаюсьникогда не возвращается успешно):
elem = WebDriverWait(browser, 3).until(ec.presence_of_element_located((By.XPATH, '//div[@onclick="backToResults();')))
... но тот же самый вызов ec без ожидания возвращает элемент, поэтому ожидание должно работать:
ec.presence_of_element_located((By.XPATH, '//div[@onclick="backToResults();'))
Итак,это не значит, что элемент не существует и доступен, по крайней мере, в течение секунды или около того, но WebDriverWait не возвращается из положительного вызова EC?