@Robot205

Ошибка StaleElementReferenceException как избавиться?

Здравствуйте, есть такой код:
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://www.fonbet.ru/live")
driver.find_element_by_css_selector('#cookie_policy_popup > div > div > div.modal-window__button-area > a').click()
while True:
    el = driver.find_elements_by_xpath("//td[contains(@class,'_indent_1')]/../td[contains(@class,'_type_btn')][1]")
    for i in el:
        i.click()

браузер запускается, начинает кликать по элементам и потом вылазиет такая ошибка
Traceback (most recent call last):
File "C:/Users/user/PycharmProjects/course Python/2.py", line 8, in
i.click()
File "C:\Users\user\AppData\Local\Programs\Python\Python38-32\lib\site-packages\selenium\webdriver\remote\webelement.py", line 80, in click
self._execute(Command.CLICK_ELEMENT)
File "C:\Users\user\AppData\Local\Programs\Python\Python38-32\lib\site-packages\selenium\webdriver\remote\webelement.py", line 633, in _execute
return self._parent.execute(command, params)
File "C:\Users\user\AppData\Local\Programs\Python\Python38-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "C:\Users\user\AppData\Local\Programs\Python\Python38-32\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.StaleElementReferenceException: Message: stale element reference: element is not attached to the page document
(Session info: chrome=80.0.3987.163)

Как от нее избавиться? чтобы кликал бесконечно в цикле?
  • Вопрос задан
  • 870 просмотров
Пригласить эксперта
Ответы на вопрос 1
@dmpopof
вам необходимо вместо
el = driver.find_elements_by_xpath("//td[contains(@class,'_indent_1')]/../td[contains(@class,'_type_btn')][1]")
for i in el:
i.click()
сделать что-то типа
el = len(driver.find_elements_by_xpath("//td[contains(@class,'_indent_1')]/../td[contains(@class,'_type_btn')][1]"))
for i in range(el):
elem = driver.find_elements_by_xpath("//td[contains(@class,'_indent_1')]/../td[contains(@class,'_type_btn')][1]")[i]
elem.click()
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 17:06
15000 руб./за проект
19 апр. 2024, в 16:53
1000 руб./за проект
19 апр. 2024, в 16:45
5000 руб./за проект