2014-03-26 3 views
2

Я использую selenium webdriver (для Internet Explorer). То, что он делает, в основном открывает веб-страницу в Internet explorer и действительно формирует отправку.Как убить процесс IEDriver exe в фоновом режиме (Selenium webdriver)?

Как я могу убить internetexplorer.exe в фоновом режиме Автоматически?

ответ

1

Закрыть браузер:

try{ 
WebDriver driver = new InternetExplorerDriver(); 
.. write all the webdriver code here like driver.get, driver.findElement().click() etc. etc. 
} 
catch(Throwable webDriverException){ 
    if(webDriverException.getMessage().contains("org.openqa.selenium.WebDriverException: Error communicating with the remote browser. It may have died"){ 
     // Kill IEDriverServer.exe process 
     // Using WebDriver WindowUtils utility 
     WindowsUtils.killByName("IEDriverServer.exe"); 

     // Or using JavaRunTime 
    Runtime.getRuntime().exec("taskkill /F /IM IEDriverServer.exe") 
    } 

} 

Смотрите, если это помогает !!!

+0

Я хочу, чтобы ваш код выполнялся всякий раз, когда браузер закрывается пользователем. есть ли какое-либо событие закрытия браузера (X) в webdriver. – user1254261

+0

Да, в webdriver существует метод close(), который закрывает текущее окно браузера. Чтобы закрыть все окна браузера, открытые webdriver, используйте метод quit(). Используйте приведенный выше код после написания метода close()/quit(). Отредактировал мой более ранний ответ. –

+0

, если я использую метод close() или quit(), он автоматически закрывает окно. Но я хочу, чтобы пользователь сам закрыл браузер, нажав кнопку закрытия браузера (X). – user1254261

5

Вы можете добавить следующий код в конце тестового сценария, чтобы закрыть IE-драйвер. Поэтому нет необходимости закрывать его вручную.

try { 
    Runtime.getRuntime().exec("taskkill /F /IM IEDriverServer.exe"); 
} catch (IOException e) { 
    e.printStackTrace(); 
} 

Else открыть блокнот и вставить следующий код.

taskkill /F /IM IEDriverServer.exe 

Сохраните файл closedriver.bat

Нажмите на этот пакетный файл, когда и хотите, чтобы закрыть драйвер IE.

+0

Привет, Пробовал приведенный выше код. Но это не работает для меня. Я пробовал с вашей секцией try, но это не помогает мне. Можете ли вы предоставить мне другой подход к уровню кодирования? Thanks –

+0

Посмотрите название процесса драйвера в диспетчере задач. Возможно, что имя отличается от – Sighil

+0

Ввод 'taskkill/F/IM IEDriverServer.exe' в CMD работал как шарм. Благодаря! – DocAsh59

Смежные вопросы