Selenium-Debugging: элемент не может быть нажат в точке (X, Y)

Я пытаюсь очистить этот сайт от Selenium.

Я хочу щелкнуть по ссылке "Следующая страница", для этого я:

 driver.find_element_by_class_name('pagination-r').click()

он работает для многих страниц, но не для всех, я получил эту ошибку

WebDriverException: Message: Element is not clickable at point (918, 13). Other element would receive the click: <div class="linkAuchan"></div>

всегда для этой страницы

Я прочитал этот вопрос

и я попробовал это

driver.implicitly_wait(10)
el = driver.find_element_by_class_name('pagination-r')
action = webdriver.common.action_chains.ActionChains(driver)
action.move_to_element_with_offset(el, 918, 13)
action.click()
action.perform()

но я получил ту же ошибку

Ответы

Ответ 1

Другой элемент - это элемент, на который вы пытаетесь щелкнуть. Вы можете использовать execute_script(), чтобы нажать на это.

element = driver.find_element_by_class_name('pagination-r')
driver.execute_script("arguments[0].click();", element)

Ответ 2

У меня была аналогичная проблема, когда использование ActionChains не решало мою ошибку: WebDriverException: Сообщение: неизвестная ошибка: элемент не доступен для клика в точке (5 74, 892)

Я нашел хорошее решение, если вы не хотите использовать execute_script:

    from selenium.webdriver.common.keys import Keys #need to send keystrokes

    inputElement = self.driver.find_element_by_name('checkout')

    inputElement.send_keys("\n") #send enter for links, buttons

или

    inputElement.send_keys(Keys.SPACE) #for checkbox etc

Ответ 3

Используйте явное ожидание вместо неявного.

 new WebDriverWait(TestingSession.Browser.WebDriver, TimeSpan.FromSeconds(10)).Until(ExpectedConditions.ElementExists((By.ClassName("pagination-r'"))));