Ошибка при web-scraping - StaleElementReferenceException

При нажатии на ссылку (на строке под номером: 47) при первой последовательности итерации, мы переходим на следующую страницу и возвращаемся назад (на строке под номером: 48), при второй последовательности итерации уже не удается перейти на другую страницу после клика на ссылку и выдаёт следующую ошибку:

selenium.common.exceptions.StaleElementReferenceException: Message: stale element reference: element is not attached to the page document

Почему так происходит и как можно это исправить? КОД:

from selenium import webdriver


class PasresPythonORG():

    def __init__(self, driver):

        self.URL = "http://www.python.org"
        self.DRIVER = driver

        self.resultTitleEvent = []
        self.resultTimeEvent = []
        self.resultLinkEvent = []
        self.resultLocationEvent = []

        self.run()


    def goToPageEvents(self):
        """ Переход к страницы: События"""

        buttonElementEvents = self.DRIVER.find_element_by_id("events")
        buttonElementEvents.click()


    def parsePageEvents(self):
        """ Метод распарсивающий каждую карточку события"""

        mainElementEvents = self.DRIVER.find_element_by_class_name("content-wrapper")


        titlesEvents = mainElementEvents.find_elements_by_class_name("event-title")
        locationsEvents = mainElementEvents.find_elements_by_class_name("event-location")

        for index in range(1, len(titlesEvents) + 1):

            # ссылка события
            linkEvent = mainElementEvents.find_element_by_xpath(
                        f'//*[@id="content"]/div/section/div/div/ul/li[{index}]/h3/a')
            self.resultLinkEvent.append(linkEvent.get_attribute("href"))

            # время события
            timeEvent = mainElementEvents.find_element_by_xpath(
                        f'//*[@id="content"]/div/section/div/div/ul/li[{index}]/p/time')
            self.resultTimeEvent.append(timeEvent.text.replace(".", ""))

            linkEvent.click()
            self.DRIVER.back()


        for titleEvent, location in zip(titlesEvents, locationsEvents):

            self.resultTitleEvent.append(titleEvent.text)
            self.resultLocationEvent.append(location.text)


    def run(self):

        self.DRIVER.get(self.URL)

        self.goToPageEvents()

        self.parsePageEvents()
        self.DRIVER.quit()


if __name__ == "__main__":
    driver = webdriver.Chrome("testSelenium\\chromedriver.exe")
    PasresPythonORG = PasresPythonORG(driver)
    PasresPythonORG.run

Ответы (0 шт):