Я могу автоматизировать веб-сайт (заполнение форм и щелчок) с помощью Selenium Webdriver, чтобы сэкономить время для моих пользователей. Я сталкивался досадная проблема, хотя:Как определить, когда браузер закрыт?
Селен, кажется, не поддерживает никаких обработчиков событий для браузеров самих. Когда браузер закрыт
driver.quit()
- не указан и неиспользуемый водитель остается, который бросает различные исключения. Имея , вы не можете узнать, когда браузер закрыт, я не могу создать новый экземпляр драйвера .
Что мне нужно - это способ уведомления моей программы, когда браузер закрыт.
Пользователь может закрыть браузер по любой причине, которая нарушает мою программу. Пользователь не может снова запускать автоматические задачи без перезапуска приложения. Зная, когда браузер закрыт, я позволю мне позвонить driver.quit()
и создать новый экземпляр драйвера, если пользователь захочет запустить его снова.
Проблема еще более усложняется тем фактом, что когда браузер умирает, ошибка, вызванная ошибкой, неравномерна в браузерах. В Firefox я могу получить исключение UnreachableBrowserException с помощью Chrome NullPointer и WebDriverExceptions.
Чтобы уточнить, я знаю, как закрыть драйвер и браузер, но я не знаю, когда они закрыты внешними источниками. Можно ли это сделать в Selenium 2 в кросс-браузере (и если да, как) или мне нужно найти другой способ (например, другую библиотеку) для просмотра окна браузера?
Поскольку вы не можете использовать 'driver.close()' или 'driver.quit()', вы можете проверить, работает ли ваш браузер Ex. chrome.exe больше не существует. Просто предложение. Посмотрите этот блог об обнаружении процесса выхода - https://beradrian.wordpress.com/2008/11/03/detecting-process-exit-in-java/ – LittlePanda
Спасибо, я попробую это. Фрагмент выглядит очень полезным. – Shantu