Задать вопрос
@gwynbleidd111

Из-за чего возникает ошибка неверный дескриптор?

Изучаю парсинг. То, что я написал работает, но выдает в конце ошибку:
Exception ignored in:
Traceback (most recent call last):
File "E:\proj_pyt\.venv\Lib\site-packages\undetected_chromedriver\__init__.py", line 843, in __del__
self.quit()
File "E:\proj_pyt\.venv\Lib\site-packages\undetected_chromedriver\__init__.py", line 798, in quit
time.sleep(0.1)
OSError: [WinError 6] Неверный дескриптор

в конце функции у меня закрывается браузер через
time.sleep(2)
driver.quit()

Нашёл объяснение что-то типа: метод
driver.quit()
пытается закрыть то, что уже закрыто каким-то другим механизмом(либо наоборот какой-то другой механизм пытается закрыть то, что уже закрыто через driver.quit()), но как-то это не складно, да и исправить проблему не помогает.
  • Вопрос задан
  • 73 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
Mike_Ro
@Mike_Ro Куратор тега Python
Python, JS, WordPress, SEO, Bots, Adversting
Вероятно код парсера падает до явного закрытия сессии, сборщик мусора python удаляет все ссылки на уже не нужный объект (python вызывает __del__ для объекта driver), затем вы явно пытаетесь закрыть несуществующий объект. Чтобы этой проблемы не было, используйте исключения и закрывайте сессия предсказуемо, либо используйте контекстный менеджер with (хотя автор и сообщает, что это больше не требуется), тогда явно ничего не нужно будет закрывать:
import undetected_chromedriver as uc

with uc.Chrome() as driver:
    pass

print("Успех или ошибка? Сессия все равно успешно закрыта!")
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы