Задать вопрос
@Slytherin

Как проверить есть ли элемент на странице сайта с помощью selenium?

У меня есть вот такой код проверки элемента, этот элемент не кнопка но я все равно на него кликаю.
def saf():
                try:
                    driver.find_element_by_xpath("//span[@id='progressMessage']").click()
                    time.sleep(1)
                    saf()
                except:
                    pass         
saf()

Суть этого кода в том чтобы дождаться когда элемент исчезнет со страницы, соответственно вылезет ошибка и код будет выполняться дальше. Просто поиск через find не работает так как он показывает что элемент есть всегда даже если его нет на странице он просто находит его в html коде страницы. На что можно заменить клик чтобы код работал?
  • Вопрос задан
  • 1235 просмотров
Подписаться 2 Простой Комментировать
Решения вопроса 1
@1001001
Используйте явные ожидания
from selenium.webdriver.support import expected_conditions as EC

WebDriverWait(driver, 10).until_not(EC.visibility_of_element_located((By.XPATH, "//span[@id='progressMessage']"))


или другую подходящею проверку
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@anerev
from selenium.common.exceptions import NoSuchElementException
while True:
    try:
        webdriver.find_element_by_xpath(xpath)
    except NoSuchElementException:
        return True
        break
Ответ написан
Ваш ответ на вопрос

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

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