StaleElementReferenceException: Message: {"errorMessage": "Элемент не существует в кэше" - PullRequest
0 голосов
/ 02 ноября 2019

Попытка удалить сайт с 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) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...