Уверен, что в селениуме есть много специальных хендлеров и прочего, чтобы получать информацию о загружаемом файле и тд, но пока никто не видит предлагаю костыль: будем вручную формировать запрос для получения файла, и не выгружая запрос полностью доставать имя файла из заголовков ответа
import requests
import re
import os
#...
headers = {'Content-Type': 'application/x-www-form-urlencoded'}
documents = driver.find_elements_by_class_name("docext-container")
for document in documents:
# тут ищем родительский элемент, в нем есть нужный нам ID
document_id = document.find_element_by_xpath('..').get_attribute('data-documentation-id')
# в пейлод вписываем нужные данные от формы, и вставляем наш ID
payload='cr_documentation_action=download&documentation_id={}&email='.format(document_id)
# url для запроса - текущая страница
# ставим обязательно stream=True, чтобы файл не выкачивался сразу
r = requests.post(driver.current_url, headers=headers, data=payload, stream=True)
# название файлов всегда есть в заголовках запроса, response.headers
# поэтому берем их, видим в нужном ключе "attachment; filename*=UTF-8''hlw-shiptsy-ortodonticheskie-reg.pdf"
# ну и недолго думая дергаем регуляркой
document_name = re.search(r'\'\'(.+?\.pdf)', r.headers['Content-Disposition']).group(1)
# дальше уже нужно проверить наличие файла в папке
# я так понял путь до папки с загрузками в переменной path_registration_documents, так что:
if document_name in os.listdir(path_registration_documents):
print('Не новый')
else:
print('Новый док')
document.click()
Заголовков дополнительных в requests не вставлял, хватило только одного. Авторизация для этого тоже не нужна, но мало ли со временем изменится что нибудь - надо будет добавить.
Ну и os.listdir() нужно свой путь нормально указать, если вдруг неправильно. В общем идея ясна, дальше уже мои полномочия все