Причина, по которой вы остались с процессами * driver.exe, скорее всего заключается в том, что вы не закрываете их явно в конце выполнения тестов - вызывая метод quit()
для объекта драйвера на выбранном вами языке.
Этот шаг обычно выполняется в деструкторе объекта - если вы используете объектно-ориентированный подход;блок finally
, если это обработка исключений;или строки выхода программы / скрипта.Большинство высокоуровневых фреймворков (Cucumber, TestNG, Robotframework, множество модульных тестов на разных языках) имеют некие «отрывные» блоки, которые обычно используются для этой цели.
Почемуэто происходит?
Когда вы запускаете автоматизацию, ОС запускает процесс для нее;когда вы создаете экземпляр объекта webdriver, он порождает процесс для драйвера браузера - "chromedriver.exe" в вашем случае.Следующим шагом является открытие экземпляра браузера - "chrome.exe".
Когда ваш запуск завершится, процесс для него будет закрыт.Но, если вы явно не вызвали метод quit()
- драйвер браузера сохраняется, «остается в живых»;и теперь это осиротевший процесс (не путать с зомби, что совершенно другое) - полностью функциональный, но без какой-либо программы для управления им.
Фактически, на этом этапе - имеярабочий процесс драйвера и браузер, вы можете подключиться к нему и использовать в будущих запусках.Узнайте, как и почему здесь - https://stackoverflow.com/a/52003231/3446126