четверг, 28 января 2016 г.

Selenium WebDriver: quit или close?

В этой статье речь пойдет о том как правильно останавливать работу драйвера или, другими словами, как закрыть браузер.
Запускается Selenium driver автоматически во время инициализации, для запуска у него нет отдельного метода.
FirefoxDriver driver = new FirefoxDriver();
 
Если по какой-либо причине запуск браузера не произойдет, то возникнет исключение и вебдрайвер не создастся.
А вот остановка его работы в определенное время ложится на разработчика тестов. WebDriver содержит два метода – quit() и close(), которые можно использовать для остановки работы браузера.
  • void close() — закрывает только одно текущее окно, и в случае, если это было последнее открытое окно — закрывает браузер.
  • void quit() — закрывает все открытые окна, завершает работу браузера и сервисов, и освобождает все ресурсы.
Поэтому для корректного завершения работы драйвера после выполнения теста используйте метод quit().

driver.quit();

Если же вам нужно закрыть отдельное открытое окно, используйте метод close(). Обратите внимание, что метод close() после закрытия одного из окон не передает управление в предыдущее открытое окно, Вы должны сделать это самостоятельно:

// переключаемся в новое окно
driver.switchTo().window(newWindowHandler);
// закрываем его
driver.close();
// возвращаемся в предыдущее окно
driver.switchTo().window(oldWindowHandler);
 
Если вы хотите просто уйти с текущей страницы, но не закрывать ее или браузер, можете просто использовать:
driver.get("");

Комментариев нет:

Отправить комментарий

SEO: Эксперимент: как Яндекс и Google учитывают ключевые слова в URL

Эксперимент: как Яндекс и Google учитывают ключевые слова в URL Эксперимент: как Яндекс и Google учитывают ключевые слова в URL Дата пу...