Я создаю скрипт в python, который проходит через таблицу с тремя столбцами. Я создал список, в котором каждая ссылка в первом столбце вставлена в список. И затем я прохожу. Когда вы зацикливаете, я нажимаю на ссылку, печатаю заявление, чтобы убедиться, что оно действительно нажало на ссылку, а затем перейдите на предыдущую страницу, чтобы можно было щелкнуть следующую ссылку. Ошибка, которую я получаю, заключается в том, что мой цикл сначала проходит по первым двум ссылкам, а затем я получаю исключение StaleElementReferenceException, когда цикл вызывает ссылки [page] .click() в третий раз. Я не могу опубликовать html, потому что сайт является конфиденциальным.веб-сканирование таблицы ссылок
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import Select
import traceback
# starting chrome browser
chrome_path = r"C:\Users\guaddavi\Downloads\chromedriver_win32 extract\chromedriver.exe"
browser = webdriver.Chrome(chrome_path)
#linking to page
browser.get('link to page with table ')
#find table of ETL Extracts
table_id = browser.find_element_by_id('sortable_table_id_0')
#print('found table')
#get all the rows of the table containing the links
rows = table_id.find_elements_by_tag_name('tr')
#remove the first row that has the header
del rows[0]
current = 0
links = [] * len(rows)
for row in rows:
col = row.find_elements_by_tag_name('td')[0]
links.append(col)
current +=1
page = 0
while(page <= len(rows)):
links[page].click()
print('clicked link' + " " + str(page))
page += 1
browser.back()