Селен Питона. Как открыть несколько ссылок на веб-странице, нажав на них

#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. Я просто исправил это, нажав на нижний колонтитул-логотип, который не был кнопкой. Большое спасибо!!