#python #selenium #web-scraping
Вопрос:
Я довольно новый программист и пытаюсь освоить веб-скребок, я начал с python, и все шло гладко, пока это не случилось:
Прежде всего, моя программа открывает веб-страницу и находит определенную кнопку, которая открывает новое меню, из которого я получаю нужные мне ссылки (это кнопки со значками).
После этого я пытаюсь открыть те ссылки, которые хранятся, в списке, который я называю элементами.
Я знаю, что нашел правильные элементы, потому что я могу успешно распечатать их, если не попытаюсь их открыть (их 5).
(Я думаю, что должен упомянуть, что, когда я нажимаю на ссылку, окно меняется, и мне приходится возвращаться к предыдущему)
Вот почему я сохранил обработчики Windows в списке, который называется windows.
Мой код, после того как я открыл меню, является:
#Find the first folder of the db, that I have to open and open it
first_fold = driver.find_element_by_class_name('title2')
first_fold.click()
windows = [driver.current_window_handle]
elements = driver.find_elements_by_class_name('estat-icon-nui')
for idx, i in enumerate(elements):
i.click()
windows.append(driver.current_window_handle)
driver.switch_to_window(str(windows[0]))
print('Finished with the ' str(idx 1) ' click, it openned the ' str(i) ' elementn')
time.sleep(3)
time.sleep(5)
print('5 seconds have just passed')
driver.close()
Когда я не пытаюсь открывать страницы. Я получаю:
Finished with the 1 click, it openned the <selenium.webdriver.remote.webelement.WebElement (session="79d7050b3acd28a1b8739a12ceb61f96", element="f2eb6415-1c6e-4612-9ff9-8374d68ad075")> element
Finished with the 2 click, it openned the <selenium.webdriver.remote.webelement.WebElement (session="79d7050b3acd28a1b8739a12ceb61f96", element="446c27d1-49dc-46d9-8a50-bfb6045e9c54")> element
Finished with the 3 click, it openned the <selenium.webdriver.remote.webelement.WebElement (session="79d7050b3acd28a1b8739a12ceb61f96", element="557551f5-1f4b-4c66-b101-010c17a1aaae")> element
Finished with the 4 click, it openned the <selenium.webdriver.remote.webelement.WebElement (session="79d7050b3acd28a1b8739a12ceb61f96", element="ac02cc69-3861-4ebd-a1b3-cae1c203b9c8")> element
Finished with the 5 click, it openned the <selenium.webdriver.remote.webelement.WebElement (session="79d7050b3acd28a1b8739a12ceb61f96", element="7c951923-3c05-441a-9ca9-84ef9e7ad505")> element
5 seconds have just passed
Но когда я пытаюсь открыть все ссылки, после первой я получаю его сообщение:
Finished with the 1 click, it openned the <selenium.webdriver.remote.webelement.WebElement (session="5bea82d8c8460877137cd2487007eefc", element="aae08cc9-0f57-4b52-b85b-6794743f2455")> element
Traceback (most recent call last):
File "e:SchoolProject_2021_Αρχες_Pythonproject_Arxes.py", line 32, in <module>
i.click()
File "C:Python39libsite-packagesseleniumwebdriverremotewebelement.py", line 80, in click
self._execute(Command.CLICK_ELEMENT)
File "C:Python39libsite-packagesseleniumwebdriverremotewebelement.py", line 633, in _execute
return self._parent.execute(command, params)
File "C:Python39libsite-packagesseleniumwebdriverremotewebdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "C:Python39libsite-packagesseleniumwebdriverremoteerrorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.ElementClickInterceptedException: Message: element click intercepted: Element <i aria-hidden="true" class="estat-icon-nui"></i> is not clickable at point (307, 507). Other element would receive the
click: <div role="tooltip" class="ui-tooltip ui-widget ui-corner-all ui-widget-content" id="ui-id-2" style="top: 497px; left: 299px; display: block;">...</div>
(Session info: chrome=91.0.4472.101)
Комментарии:
1. судя по вашему
ElementClickInterceptedException
, похоже, что есть подсказка, которая скрывает элемент, который вы пытаетесь использовать. Вероятно, вам нужно будет найти способ избавиться от этой подсказки. Я не уверен, как это сделать, не увидев ваш сайт2. @C. Пек, Ты должен быть прав. Я проверяю это в эту секунду, когда вы наводите курсор на значок, под ним отображается текст. Я просто попытался навести курсор на другой элемент с помощью цепочек действий, но ничего не изменил. У вас есть какое-нибудь другое решение? Заранее спасибо
3. Я просто исправил это, нажав на нижний колонтитул-логотип, который не был кнопкой. Большое спасибо!!