Я пытаюсь щелкнуть ссылку на следующую страницу на этой веб-странице: https://www.kumon.co.uk/find-a-tutor/. Эта страница будет пустой, пока вы не наберете такое место, как Лондон, Манчестер или где бы то ни было :)
Исходный код выглядит следующим образом:
<nav class="visible-xs-block">
<ul class="pager">
<li>
<a data-page="2" href="https://www.kumon.co.uk/find-a-tutor/?centre_search=london&page=2"><small><i class="fa fa-chevron-right"></i></small></a>
</li>
</ul>
</nav>
Я пытаюсь сделать следующий щелчок на следующей странице двумя способами:
-
Первое испытание:
browser.find_elements_by_xpath("//*[@class='fa fa-chevron-right']/../..")[2].click()
-
Ошибка:
selenium.common.exceptions.ElementNotVisibleException: Message: element not visible
-
Второе испытание:
WebDriverWait(browser, 30).until(EC.presence_of_element_located((By.XPATH, "//*[@class='fa fa-chevron-right']/../.."[2]))).click()
-
Ошибка:
selenium.common.exceptions.WebDriverException: Message: unknown error: Failed to execute 'getComputedStyle' on 'Window': parameter 1 is not of type 'Element'.
Важно то, что я не могу найти документацию относительно второго сообщения об ошибке, и именно поэтому я отправляю свое первое сообщение о stackoverflow :)
FYI , когда я убираю то время как браузер . find_element_by_xpath ( "// ul [@ class = 'pagination'] // li [last ()] / a / small" ): action = ActionChains ( браузер ) search_button = WebDriverWait ( браузер , 20 ). до ( EC . element_to_be_clickable (( By . XPATH , "// ul [@ class = 'pagination'] // li [last ()] / a / small" ))) действие . move_to_element ( search_button ) sleep ( 1 ) search_button . click () элемент хорошо локализован, так что это щелчок (), который выглядит как бы: /
Я нашел это решение, касающееся Javascript, который может быть классным для меня, но я действительно не знаю, как реализовать this = $ x ( "// ul [@ class = 'pagination'] // li [last ()] / a / small " ) Элемент Selenium Element не видно исключение
Что вы думаете об этом ?
У вас есть идея помочь мне, пожалуйста? Я застрял в этом вопросе за 2 дня, к сожалению :(
РЕДАКТИРОВАТЬ:
Этот фрагмент:
click()
вызывает ошибку selenium.common.exceptions.StaleElementReferenceException: Message: ссылка на устаревший элемент: элемент не привязан к документу страницы
И я не уверен, что использование try ... except - лучшее решение для его решения, не так ли?
Спасибо заранее, Николас.
python,selenium,selenium-webdriver,xpath,webdriverwait,