Я автоматизирую веб-страницу, состоящую из очень большой таблицы (более 300 строк), используя Chrome.Содержимое таблицы обновляется каждые 5 секунд.Прежде чем селен завершает обход всех строк, таблица обновляется.Например, если селен прошел 50 строк, а затем таблица обновилась, 51-я строка создает исключение StaleElementReferenceException.Я не знаю, какие возможности нужно изменить для получения контента.
Я попытался отключить JavaScript и запустить скрипт автоматизации.Однако отключение javascript привело к проблемам с драйвером chrome.
def table_get():
header_list = list()
return_list = list()
head = driver.find_elements_by_tag_name('thead')
body = driver.find_elements_by_tag_name('tbody')
for row in head.find_elements_by_tag_name('tr'):
for header in row.find_elements_by_tag_name('th'):
header_list.append(th.text)
for row in body.find_elements_by_tag_name('tr'):
temp_list = list()
for cell in row.find_elements_by_tag_name('td'):
temp_list.append(cell.text)
return_list.append(zip(header_list, temp_list))
return return_list
Ожидаемый результат: Обход всех строк и возвращение списка словарей, где каждый ключ словаря является заголовком и значением содержимого строки подheader.
Фактический вывод: обход невозможен.StaleElementReferenceException, брошенный между обходами.