Я использую Selenium
в Java для автоматизации Google Chrome
.Когда моя программа завершает работу, экземпляр chromedriver.exe
остается в памяти.Я знаю, что могу использовать driver.quit()
, например, в блоке finally
, чтобы закрыть текущий экземпляр.Однако, если приложение Java
завершается в любое время (например, во время сеансов отладки), эта очистка, разумеется, никогда не выполняется.
Я ищу решение сделать chromedriver.exe
дочерним процессомпроцесса Java
, поэтому при выходе из процесса Java
дочерний процесс также автоматически умирает.Такие решения, как Runtime.getRuntime().exec("taskkill /F /IM chromedriver.exe");
, убивают все chromedriver.exe
экземпляры, но это может испортить другие Selenium
процессы в системе, что не идеально.Также это не будет работать против насильственного уничтожения процесса.