Моя программа запускает несколько десятков экземпляров WebDriver
параллельно и убивает их, когда выполняются определенные условия или когда я вручную завершаю программу. В любой момент времени у меня может быть 4 десятка активных WebDriver
экземпляров, и для уничтожения нежелательных экземпляров я вызываю:
driver.quit();
Если driver.quit();
выдает исключение, я убиваю WebDriver
с помощью PIDс помощью команды Runtime.getRuntime().exec() taskkill
.
Большинство активных драйверов уничтожаются при этом вызове (при выходе из программы). Однако обычно есть несколько (1-3), которые «зависают» с сообщением Mozilla FireFox (Not Responding)
. И они никогда не умирают.
Я не могу определить основную причину проблемы, поскольку команда, которую я использую для уничтожения WebDriver
, обычно работает. Я рассмотрел несколько потоков в SO относительно подобных проблем, но чувствую, что ни один из них не решает мою проблему, потому что, как уже говорилось, команда, которую я использую, работает в целом - она не работает во всех случаях. Насколько я вижу, нет никакой разницы между тем, как работает любой из драйверов. Кроме того, при вызове driver.quit()
не выдается ошибка / исключение. Так что, когда команда работает и не работает, она кажется совершенно случайной.
Что может привести к тому, что Firefox будет зависать и не реагировать на команду quit()
?
Спасибо!