Я хочу получить все результаты гонки. Сайт показывает 50 строк / страницу.
Я перехожу на следующую страницу (тот же URL с суффиксом # page-x), используя selenium, но я получаю ошибку StaleElementReferenceException всякий раз, когда пытаюсь найти элементы (ячейки таблицы = td) на следующей странице.
Я пытался закрыть драйвер между шагами, чтобы получить только один список элементов за раз. Я также пытался загрузить страницы отдельно с URL + суффиксом, но он загружается неправильно. Я пытался создать отдельные списки (сначала я хотел получить один большой список со всеми результатами).
from selenium import webdriver
url = "https://tickets.justrun.ca/quidchrono.php?a=qcResult&raceid=8444"
#The block under works well and I get a list of cells as intended.
driver = webdriver.Chrome()
driver.maximize_window()
driver.get(url)
elements = driver.find_elements_by_tag_name("td")
course = []
for i in range(len(elements)):
course.append(elements[i].text)
to_2 = driver.find_element_by_link_text("2")
to_2.click()
print(driver.current_url)
#I'm trying similar code for the next chunk, but it doesn't work.
elements2 = driver.find_elements_by_tag_name("td")
print(len(elements2))
print(elements2[5].text)
course2 = []
for i in range(len(elements2)):
course2.append(elements2[i].text)
driver.close()
Я ожидал бы новый список (курс 2) с результатами второй страницы, но я получаю ошибку устаревшего элемента. Когда я печатаю текущий URL, результат будет таким, как ожидалось. Когда я печатаю len (elements2), это тоже нормально. Похоже, проблема в том, что я пытаюсь получить текст элемента.