Попытка удалить сайт с 800 страницами, код останавливается случайным образом при случайном номере страницы! (Например, в первый раз, когда я получаю ошибку на 5-й странице, затем при следующем запуске я получаю ошибку на 500-й странице)
Инициализированный драйвер селена, Извлекать таблицу со страницы веб-сайта, для каждой строки И для каждого столбца в строке, я извлекаю данные и добавляю их в отдельный список, чтобы позже я мог сгруппировать их для формирования фрейма данных,но вышеупомянутая ошибка продолжает срабатывать и останавливать цикл с произвольными номерами страниц каждый раз, когда я перезапускаю программу.
Ошибка «StaleElementReferenceException: Message: {« errorMessage »:« Элемент не существует в кеше »,«запрос ": {" заголовки ": {" Accept ":" приложения / JSON», "Accept-Encoding": "идентичность", "Content-Length": "117", ........ "куски": ["elements"]}, "urlOriginal": "/ session / 7cff3fd0-fd4e-11e9-b0e3-c9f679f964da / element /: wdc: 1572684982199 / elements"}} Снимок экрана: доступен через экран "
url = "https://auditoria.cgu.gov.br/"
driver.get(url)
page = driver.find_element_by_id('lista_info').text
last_page=int(re.split(r'\s',page)[-1])
for_heading=driver.find_element_by_id('lista_wrapper').find_elements_by_css_selector('th')
heading_list=[]
for element in for_heading:
heading_list.append(element.text)
df1= pd.DataFrame(columns=heading_list)
listn_0=[]
listn_1=[]
listn_2=[]
listn_3=[]
listn_4=[]
listn_5=[]
listn_6=[]
c=0
page=0
counter=0
page=0
counter=0
while page!=last_page:
for_row = len(driver.find_element_by_id('lista').find_elements_by_tag_name('tr'))
for row in range(1,for_row):
i=0
if(driver.find_element_by_id('lista').find_elements_by_tag_name('tr')[row].find_elements_by_tag_name('td')):
col_list= len(driver.find_element_by_id('lista').find_elements_by_tag_name('tr')[row].find_elements_by_tag_name('td'))
c=0
for cols in range(col_list):
if(c==1):
locals()['listn_%d' %i].append(driver.find_element_by_id('lista').find_elements_by_tag_name('tr')[row].find_elements_by_tag_name('td')[cols].find_element_by_css_selector('a').get_attribute('href'))
else:
locals()['listn_%d' %i].append(driver.find_element_by_id('lista').find_elements_by_tag_name('tr')[row].find_elements_by_tag_name('td')[cols].get_property('text'))
i=i+1
c=c+1
else:
continue;
counter=counter+1
page=page+1
print(counter)
driver.find_element_by_id('lista_next').click()
time.sleep(1)