Если я правильно понимаю, вы пытаетесь автоматизировать часть потока, а затем разрешите программе автоматизации выйти, оставив браузер открытым для выполнения остальных шагов вручную. В этом случае лучший способ убедиться, что открыто только одно такое окно, состоит в том, чтобы скрипт автоматизации оставался на холостом ходу до тех пор, пока вы не закончили с заданием вручную. Примерно так в конце вашей основной функции:
try {
while(true) {
Thread.sleep(1000);
driver.getCurrentUrl();
}
} catch(Exception e) {}
Будет гарантировать, что программа остается активной, пока открыто окно браузера. Вы можете продолжить ручной процесс в браузере. Как только вы закончите, вы можете закрыть браузер, который автоматически завершит этот процесс. Или перед началом новой задачи вы убиваете старую с помощью ^ c, что, в свою очередь, закрывает браузер.
Вторым вариантом, не поддерживающим скрипт автоматизации на холостом ходу, будет поиск идентификатора процесса вновь созданного экземпляра браузера. Вы можете сохранить идентификатор процесса в некотором файле во временной папке. Каждый раз, когда ваш скрипт запускается, он проверяет файл, читает из него pid, и, если идентификатор процесса существует, попытается уничтожить его, прежде чем запустить новое окно браузера.