Cómo cerrar un navegador en Selenium

Cómo cerrar un navegador en Selenium

En este artículo, discutiremos sobre los métodos para cerrar el navegador. Selenium admite dos métodos para cerrar el navegador: (1) Método Cerrar () y (2) Método Quit (). Pero ambos se usan en diferentes situaciones. Explicaremos cómo y dónde usamos cada uno de ellos con un ejemplo implementado. Este artículo implementa dos enfoques para verificar si la ID de sesión de WebDriver está activa o nula.

Cómo cerrar un navegador en Selenium

Cerrar el navegador es una de las operaciones cuando terminamos las pruebas de verificación del sitio web. El marco de Selenium también proporciona los comandos para cerrar todo el navegador o pestañas después de terminar las pruebas de automatización con la ayuda de WebDriver.

Selenium admite dos métodos para cerrar los navegadores: (1) Conductor.Cerrar () y (2) controlador.abandonar(). Cómo y cuándo se utiliza cada uno de los métodos se explican a continuación:

Método Cerrar ()

El método Close () es una de las operaciones que es compatible con Selenium para cerrar la ventana del navegador que está enfocada. Si hay múltiples pestañas abiertas en el navegador, el método Close (), con la ayuda de WebDrivers, solo cierra la pestaña enfocada en la que la prueba de automatización de selenio se está ejecutando actualmente y el resto de las pestañas no están cerradas. El método Close () solo cierra la pestaña actual pero no destruye la sesión de WebDriver.

La sintaxis para cerrar la ventana del navegador se da en lo siguiente:

conductor.cerca()

Donde el "controlador" es la instancia de WebDriver.

Método Quit ()

El marco de Selenium admite la operación Quit () para cerrar todas las pestañas abiertas del navegador. El método Quit () le permite cerrar todas las pestañas que están abiertas en el navegador. El navegador WebDriver utiliza el método Quit () para finalizar la sesión WebDriver que actualmente está activa.

El método Quit () no solo cierra todas las pestañas de navegador abiertas, sino que termina las sesiones de WebDriver llamando al controlador.Método de eliminación. En caso de que el WebDriver no destruya la sesión después de cerrar las ventanas del navegador, hay posibilidades de filtrar archivos de memoria y errores para ocurrir.

La sintaxis para cerrar la ventana del navegador se da en lo siguiente:

conductor.abandonar()

Donde el "controlador" es la instancia de WebDriver.

Enfoque 1: Cierre la ventana actual del navegador mientras mantiene vivo la sesión de WebDriver

En Selenium, el método Close () habilita la sesión WebDriver vivo después de cerrar la pestaña actual. Tomemos un escenario en el que abramos el navegador y cierremos la pestaña enfocada actualmente, verifique si la sesión no está cerrada. Para hacerlo, usamos https: // www.eBay.com/ sitio web.

Comencemos a implementar!

Primero, cree el archivo Java con el nombre como Close_Browser.Java. Además, seleccione la opción de la clase vacía estática. Luego, el archivo Java crea automáticamente la clase pública con el nombre del archivo y genera una clase principal del vacío estático público. El código se menciona de la siguiente manera:

clase pública Close_Browser
public static void main (string [] args)

Ahora, importemos los paquetes necesarios de WebDriver, SessionID, Remotewebdriver y Time.Duración para la clase implícita.

Aquí está el código para el paquete de importación necesario:

importar java.tiempo.Duración;
Org de importación.abierto.selenio.cromo.Cromedriver;
Org de importación.abierto.selenio.remoto.Remotewebdriver;
Org de importación.abierto.selenio.remoto.ID de sesión;

Puede consultar el código completo que proporcionamos en el siguiente. Después de eso, desglosamos este código en trozos pequeños para que pueda entender qué función sirve cada una.

paquete ui;
importar java.tiempo.Duración;
Org de importación.abierto.selenio.cromo.Cromedriver;
Org de importación.abierto.selenio.remoto.Remotewebdriver;
Org de importación.abierto.selenio.remoto.ID de sesión;
clase pública Close_Browser
public static void main (string [] args)
Sistema.setProperty ("WebDriver.cromo.conductor "," C: \\ BrowserDrivers \\ ChromedRiver.exe");
Cromedriver controlador = nuevo ChromedRiver ();
conductor.administrar().ventana().maximizar();
conductor.administrar().tiempo de espera ().desplazamiento implícito (duración.Ofseconds (10));
conductor.Get ("https: // www.eBay.com/");
Sistema.afuera.println ("Abra el sitio web de eBay en Chrome Browser");
conductor.cerca();
Sistema.afuera.println ("Cerrar el navegador");
SessionId ID = ((RemoteweBDriver) controlador).getSessionId ();
Sistema.afuera.println ("Obtener ID de sesión después de cerrar el método:" + id);

Ahora desglosemos el código anterior Línea por línea y expliquemos cómo funciona cada línea.

Para esta implementación de escenarios, usamos el navegador Chrome. En la sección inicial del código, acceda al directorio local de los controladores de Chrome antes de comenzar los controladores de navegador Chrome.

La siguiente sintaxis se usa para implementarla:

Sistema.setProperty ("WebDriver.cromo.conductor "," C: \\ BrowserDrivers \\ ChromedRiver.exe");
Cromedriver controlador = nuevo ChromedRiver ();

Después de eso, maximizamos la ventana del navegador utilizando la siguiente sintaxis dada:

conductor.administrar().ventana().maximizar();

Tenga en cuenta que cargando todos los elementos de la página web, esta función espera hasta que se proporcione la espera implícita para el controlador como lo hemos dado en nuestro siguiente código:

conductor.administrar().tiempo de espera ().desplazamiento implícito (duración.Ofseconds (10));
conductor.Get ("https: // www.eBay.com/");

El impliclywait () es el método para realizar una espera implícita. La función de duración menciona el retraso de tiempo, el "de segundo" es la unidad de tiempo, mientras que el programa espera 10 segundos para que los elementos carguen y abra el sitio web de URL solicitado.

Después de que el sitio web solicitado se abra en el navegador, imprima el "Abra el sitio web de eBay en Chrome Browser" en la consola.

Aquí está la sintaxis para imprimir el texto en la consola:

Sistema.afuera.println ("Abra el sitio web de eBay en Chrome Browser");

En este trozo de código, ahora cerramos la ventana del navegador abierta actualmente usando el método Close ().

Aquí está el código de sintaxis para cerrar la ventana del navegador actual e imprimir el texto "Cerrar el navegador" en la consola:

conductor.cerca();
Sistema.afuera.println ("Cerrar el navegador");

Ahora, la parte final del código se refiere a verificar si la sesión se destruye o no:

SessionId ID = ((RemoteweBDriver) controlador).getSessionId ();

En el código previamente dado, la clase remoTeWebDriver se utiliza para recuperar la ID de sesión del WebDriver. Se utiliza un servidor WebDriver para comunicarse con un navegador web remoto utilizando la clase RemotewebDriver, una subclase de la clase WebDriver. El método getSessionId () se usa para obtener el ID de sesión si está activo.

Sistema.afuera.println ("Obtener ID de sesión después de cerrar el método:" + id);

El sistema.afuera.println () es la función Java que se utiliza para imprimir la cadena y los valores variables. Aquí, imprimemos la ID de sesión del WebDriver.

En la siguiente captura de pantalla, podemos ver el resultado de salida del código ejecutado:

Como puede observar, después de ejecutar el código anterior, el método Close () cierra la pestaña del navegador de trabajo actual. Pero aún así, la ID de sesión de WebDriver se activa que se imprime en la consola anterior.

Enfoque 2: Cierre cada ventana del navegador y finalice la sesión de WebDriver

En Selenium, el método Quit () permite que la sesión de WebDriver finalice y cierre todas las pestañas abiertas. Tomemos el escenario, donde abriremos el navegador Chrome y cerraremos todas las pestañas abiertas en el navegador Chrome y luego verifique si cualquiera de la sesión se vuelve nula.

Comencemos a implementar!

Puede consultar el código completo que proporcionamos en la siguiente ilustración. Después de eso, desglosamos este código en trozos pequeños para que pueda entender qué función sirve cada una.

paquete ui;
importar java.tiempo.Duración;
Org de importación.abierto.selenio.cromo.Cromedriver;
Org de importación.abierto.selenio.remoto.Remotewebdriver;
Org de importación.abierto.selenio.remoto.ID de sesión;
clase pública Close_Browser
public static void main (string [] args)
Sistema.setProperty ("WebDriver.cromo.conductor "," C: \\ BrowserDrivers \\ ChromedRiver.exe");
Cromedriver controlador = nuevo ChromedRiver ();
conductor.administrar().ventana().maximizar();
conductor.administrar().tiempo de espera ().desplazamiento implícito (duración.Ofseconds (10));
conductor.Get ("https: // www.eBay.com/");
Sistema.afuera.println ("Abra el sitio web de eBay en Chrome Browser");
conductor.abandonar();
Sistema.afuera.println ("Cerrar el navegador");
SessionId ID = ((RemoteweBDriver) controlador).getSessionId ();
Sistema.afuera.println ("Obtener ID de sesión después de cerrar el método:" + id);

Ahora desglosemos el código proporcionado por línea y expliquemos cómo funciona cada línea.

Para esta implementación de escenario, repitemos los mismos pasos de enfoque #1. Para iniciar el navegador, maximice el navegador e implementen la espera implícita.

En este trozo de código, ahora cerramos toda la ventana de navegadores abiertos usando el método Quit ().

Aquí está el código de sintaxis para cerrar toda la ventana de los navegadores e imprimir el texto "Cerrar el navegador" en la consola:

conductor.abandonar();
Sistema.afuera.println ("Cerrar el navegador");

Ahora, la parte final del código se refiere a verificar si la sesión se destruye o no:

SessionId ID = ((RemoteweBDriver) controlador).getSessionId ();

En el código previamente dado, la clase remoTeWebDriver se utiliza para recuperar la ID de sesión del WebDriver. Se utiliza un servidor WebDriver para comunicarse con un navegador web remoto utilizando la clase RemotewebDriver, una subclase de la clase WebDriver. El método getSessionId () verifica si la sesión es nula.

Sistema.afuera.println ("Obtener ID de sesión después de cerrar el método:" + id);

El sistema.afuera.println () es la función Java que se utiliza para imprimir la cadena y los valores variables. Aquí, imprimemos la ID de sesión del WebDriver.

En la siguiente captura de pantalla, podemos ver el resultado de salida del código ejecutado:

Como puede observar, después de ejecutar el código anterior, el método Quit () cierra todas las pestañas del navegador abierto y destruye la sesión de WebDriver que se imprime en la consola anterior que es nula.

Conclusión

Aprendiste los dos métodos para cerrar el navegador: métodos Close () y Quit (). Este artículo explicó ambos métodos en detalle sobre dónde usar el método Close () y dónde usar el método Quit (). Luego, implementamos ambos enfoques con el ejemplo para verificar si la ID de sesión de WebDriver está viva o no. Este tutorial es lo mejor para los desarrolladores principiantes y experimentados.