Как я могу разрешить нажатие CTRL+C для прерывания сценария Python без закрытия веб-драйвера Selenium? [Окна]Python

Программы на Python
Anonymous
Как я могу разрешить нажатие CTRL+C для прерывания сценария Python без закрытия веб-драйвера Selenium? [Окна]

Сообщение Anonymous »

У меня есть скрипт Python, который использует Selenium для автоматизации браузера. Я использую Windows. Я хочу иметь возможность прервать выполнение сценария, нажав CTRL+C. Но даже если я перехватываю исключение, веб-драйвер завершает работу по прерыванию.
Обратите внимание на следующее:

Код: Выделить всё

from selenium import webdriver

driver = webdriver.Chrome()
try:
while True:
pass
except KeyboardInterrupt:
print('KeyboardInterrupt caught')

driver.get('https://www.google.com') # will fail
При нажатии CTRL+C окно веб-драйвера немедленно закрывается. Любые последующие вызовы методов драйвера вызывают исключение urllib3.
Есть несколько ситуаций, когда такое поведение очень неудобно — если я использую веб-драйвер в Python REPL и мне нужно завершить некоторую функцию через прерывание, я не хочу, чтобы это разрушило мой экземпляр драйвера. Аналогичным образом, при тестировании более длительного автоматизированного процесса я хотел бы иметь возможность отменить выполнение вручную, если что-то пойдет не так, но оставить окно браузера открытым для отладки.
Я мог бы использовать экземпляр Удаленный веб-драйвер (через Selenium Grid) на моем локальном компьютере, как предложено здесь, но я не хочу усложнять управление сеткой.
Решения, упомянутые здесь, похоже, работают только в Unix.< /p>
Есть ли простой способ добиться этого в Windows?

Подробнее здесь: https://stackoverflow.com/questions/782 ... out-closin

Вернуться в «Python»