@Speakermen

Почему ошибка Message: Element is not clickable at point (782,28) because another element?

Две страницы скролит 3 нет(
import time
from selenium import webdriver

url = 'https://www.dns-shop.ru/catalog/17a89aab16404e77/videokarty/?p=1'
options = webdriver.FirefoxOptions()
options.set_preference("dom.webdriver.enabled", False)
driver = webdriver.Firefox(executable_path="Y:\\projects\\apppython2\\geckodriver-v0.30.0-win64\\geckodriver.exe", options=options)
from selenium.webdriver.common.by import By

try:
    driver.get(url)
    time.sleep(5)
    SCROLL_PAUSE_TIME = 2
    h = 4600
    while True:
        pageY = driver.execute_script("return window.pageYOffset")
        nextEl = driver.find_element(By.CLASS_NAME, 'pagination-widget__show-more-btn')
        driver.execute_script("window.scrollTo(0, window.scrollY + 200)")
        time.sleep(SCROLL_PAUSE_TIME)
        if int(pageY) >= h:
            nextEl.click()
            h = h + h
            continue
except Exception as ex:
    print(ex)
finally:
    driver.close()
    driver.quit()
  • Вопрос задан
  • 609 просмотров
Решения вопроса 1
@swimmwatch
Python software engineer
Во время того, как Selenium попытался кликнуть на нужный элемент, его что-то перекрывало. Такое часто происходит, когда есть какие-нибудь анимации или переходы.
Чтобы минимизировать подобные ошибки, рекомендую использовать explicit waiters. Данный функционал позволяет сделать ожидание какого-то события. Например:
  • подождать до тех пор, пока элемент не появится на странице
  • подождать до тех пор, пока элемент не станет кликабельным
  • и т.д. Их можно легко реализовать самому.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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