Comment fermer un navigateur en sélénium

Comment fermer un navigateur en sélénium

Dans cet article, nous discuterons des méthodes pour fermer le navigateur. Selenium prend en charge deux méthodes pour fermer le navigateur: (1) Méthode fermer () et (2) QUIT () Méthode. Mais les deux sont utilisés dans différentes situations. Nous expliquerons comment et où nous en utilisons chacun avec un exemple implémenté. Cet article met en œuvre deux approches pour vérifier si l'ID de session WebDriver est actif ou nul.

Comment fermer un navigateur en sélénium

La fermeture du navigateur est l'une des opérations lorsque nous terminons les tests de vérification du site Web. Le framework Selenium fournit également les commandes pour fermer l'ensemble du navigateur ou des onglets après avoir terminé les tests d'automatisation à l'aide de WebDriver.

Le sélénium prend en charge deux méthodes pour fermer les navigateurs: (1) conducteur.Fermer () et (2) conducteur.arrêter(). Comment et quand chacune des méthodes est utilisée est expliquée dans ce qui suit:

Méthode close ()

La méthode close () est l'une des opérations qui est prise en charge par Selenium pour fermer la fenêtre du navigateur qui est au point. S'il y a plusieurs onglets qui sont ouverts dans le navigateur, la méthode close (), à l'aide de webdrivers, ne ferme que l'onglet focalisé sur lequel le test d'automatisation du sélénium est actuellement en cours d'exécution et que les autres onglets ne sont pas fermés. La méthode close () ne ferme que l'onglet actuel mais ne détruit pas la session WebDriver.

La syntaxe pour fermer la fenêtre du navigateur est donnée dans ce qui suit:

conducteur.fermer()

Où le «pilote» est l'instance de webdriver.

Méthode quit ()

Le framework Selenium prend en charge l'opération QUIT () pour fermer tous les onglets ouverts du navigateur. La méthode QUIT () vous permet de fermer tous les onglets ouverts dans le navigateur. Le navigateur WebDriver utilise la méthode QUIT () pour mettre fin à la session WebDriver qui est actuellement active.

La méthode quit () ferme non seulement tous les onglets du navigateur ouvert, mais termine les sessions Webdriver en appelant le pilote.Disser la méthode. Dans le cas où le webdriver ne détruit pas la session après la fermeture des fenêtres du navigateur, il y a des chances de divulguer des fichiers de mémoire et des erreurs.

La syntaxe pour fermer la fenêtre du navigateur est donnée dans ce qui suit:

conducteur.arrêter()

Où le «pilote» est l'instance de webdriver.

Approche 1: Fermez la fenêtre actuelle du navigateur tout en gardant la session WebDriver en vie

En sélénium, la méthode close () permet à la session WebDriver vivant après la fermeture de l'onglet actuel. Prenons un scénario où nous ouvrons le navigateur et fermons l'onglet actuellement concentré, puis vérifiez si la session n'est pas fermée. Pour ce faire, nous utilisons le https: // www.eBay.com / site Web.

Commençons à mettre en œuvre!

Tout d'abord, créez le fichier java avec le nom comme close_browser.Java. Sélectionnez également l'option de la classe de vide statique. Ensuite, le fichier Java crée automatiquement la classe publique avec le nom du fichier et génère une classe principale statique du public. Le code est mentionné comme suit:

classe publique close_browser
public static void main (String [] args)

Maintenant, importons les packages nécessaires de WebDriver, SessionID, Remotewebdriver et Time.Durée de la classe implicite.

Voici le code du package d'importation nécessaire:

Importer Java.temps.Durée;
org d'importation.openqa.sélénium.chrome.Chromedriver;
org d'importation.openqa.sélénium.télécommande.Remotewebdriver;
org d'importation.openqa.sélénium.télécommande.ID de session;

Vous pouvez vous référer à l'ensemble du code que nous avons fourni dans ce qui suit. Après cela, nous décomposons ce code en petits morceaux afin que vous puissiez comprendre quelle fonction chacun sert.

package ui;
Importer Java.temps.Durée;
org d'importation.openqa.sélénium.chrome.Chromedriver;
org d'importation.openqa.sélénium.télécommande.Remotewebdriver;
org d'importation.openqa.sélénium.télécommande.ID de session;
classe publique close_browser
public static void main (String [] args)
Système.SetProperty ("WebDriver.chrome.Conducteur "," C: \\ BrowserDrivers \\ ChromEdriver.exe");
Chromedriver Driver = new ChromEdriver ();
conducteur.gérer().fenêtre().maximiser();
conducteur.gérer().délais de temps ().ImplicitlyWait (durée.des secondes (10));
conducteur.get ("https: // www.eBay.com / ");
Système.dehors.println ("Ouvrez le site Web eBay dans Chrome Browser");
conducteur.fermer();
Système.dehors.println ("Fermer le navigateur");
SessionId ID = ((Remotewebdriver).getSessionId ();
Système.dehors.println ("Get Session ID après fermer la méthode:" + id);

Décomposons maintenant le code précédent en ligne par ligne et expliquant comment chaque ligne fonctionne.

Pour cette implémentation de scénario, nous utilisons le navigateur Chrome. Dans la section initiale du code, accédez au répertoire local des pilotes Chrome avant de commencer les pilotes de navigateur Chrome.

La syntaxe suivante est utilisée pour l'implémenter:

Système.SetProperty ("WebDriver.chrome.Conducteur "," C: \\ BrowserDrivers \\ ChromEdriver.exe");
Chromedriver Driver = new ChromEdriver ();

Après cela, nous maximions la fenêtre du navigateur à l'aide de la syntaxe donnée suivante:

conducteur.gérer().fenêtre().maximiser();

Gardez à l'esprit que le chargement de tous les éléments de la page Web, cette fonction attend que l'attente implicite soit donnée pour le pilote comme nous l'avons donné dans notre code suivant:

conducteur.gérer().délais de temps ().ImplicitlyWait (durée.des secondes (10));
conducteur.get ("https: // www.eBay.com / ");

L'IMPIGRYWAIT () est la méthode pour effectuer une attente implicite. La fonction de durée mentionne le décalage temporel, le «de la seconde» est l'unité de temps, tandis que le programme attend 10 secondes pour que les éléments chargent et ouvrent le site Web de l'URL demandé.

Après l'ouverture du site Web demandé dans le navigateur, imprimez le «Open the ebay Sited in Chrome Browser» dans la console.

Voici la syntaxe pour imprimer le texte dans la console:

Système.dehors.println ("Ouvrez le site Web eBay dans Chrome Browser");

Dans ce morceau de code, nous fermons maintenant la fenêtre du navigateur actuellement ouvert à l'aide de la méthode Close ().

Voici le code de syntaxe pour fermer la fenêtre actuelle du navigateur et imprimer le texte «Fermez le navigateur» dans la console:

conducteur.fermer();
Système.dehors.println ("Fermer le navigateur");

Maintenant, le dernier morceau de code fait référence à la vérification si la session est détruite ou non:

SessionId ID = ((Remotewebdriver).getSessionId ();

Dans le code précédemment donné, la classe Remotewebdriver est utilisée pour récupérer l'ID de session du webdriver. Un serveur WebDriver est utilisé pour communiquer avec un navigateur Web distant à l'aide de la classe Remotewebdriver, une sous-classe de la classe WebDriver. La méthode getSessionId () est utilisée pour récupérer l'ID de session si actif.

Système.dehors.println ("Get Session ID après fermer la méthode:" + id);

Le système.dehors.println () est la fonction java qui est utilisée pour imprimer la chaîne et les valeurs variables. Ici, nous imprimons l'ID de session du webdriver.

Dans la capture d'écran suivante, nous pouvons voir le résultat de sortie du code exécuté:

Comme vous pouvez l'observer, après avoir exécuté le code précédent, la méthode Close () ferme l'onglet du navigateur de travail actuel. Mais quand même, l'ID de session WebDriver est activé qui est imprimé dans la console précédente.

Approche 2: Fermez chaque fenêtre du navigateur et terminez la session WebDriver

En sélénium, la méthode quit () permet à la session WebDriver de se terminer et de fermer tous les onglets ouverts. Prenons le scénario, où nous ouvrirons le navigateur Chrome et fermons tous les onglets ouverts dans le navigateur Chrome, puis vérifiez si l'une ou l'autre ID de session devient nul.

Commençons à mettre en œuvre!

Vous pouvez vous référer au code entier que nous avons fourni dans l'illustration suivante. Après cela, nous décomposons ce code en petits morceaux afin que vous puissiez comprendre quelle fonction chacun sert.

package ui;
Importer Java.temps.Durée;
org d'importation.openqa.sélénium.chrome.Chromedriver;
org d'importation.openqa.sélénium.télécommande.Remotewebdriver;
org d'importation.openqa.sélénium.télécommande.ID de session;
classe publique close_browser
public static void main (String [] args)
Système.SetProperty ("WebDriver.chrome.Conducteur "," C: \\ BrowserDrivers \\ ChromEdriver.exe");
Chromedriver Driver = new ChromEdriver ();
conducteur.gérer().fenêtre().maximiser();
conducteur.gérer().délais de temps ().ImplicitlyWait (durée.des secondes (10));
conducteur.get ("https: // www.eBay.com / ");
Système.dehors.println ("Ouvrez le site Web eBay dans Chrome Browser");
conducteur.arrêter();
Système.dehors.println ("Fermer le navigateur");
SessionId ID = ((Remotewebdriver).getSessionId ();
Système.dehors.println ("Get Session ID après fermer la méthode:" + id);

Décomposons maintenant le code fourni en ligne par ligne et expliquons comment chaque ligne fonctionne.

Pour cette implémentation de scénario, nous répétons toutes les mêmes étapes de l'approche n ° 1. Pour lancer le navigateur, maximisez le navigateur et implémentez l'attente implicite.

Dans ce morceau de code, nous fermons maintenant toutes les fenêtres des navigateurs ouverts en utilisant la méthode QUIT ().

Voici le code de syntaxe pour fermer toute la fenêtre des navigateurs et imprimer le texte «Fermez le navigateur» dans la console:

conducteur.arrêter();
Système.dehors.println ("Fermer le navigateur");

Maintenant, le dernier morceau de code fait référence à la vérification si la session est détruite ou non:

SessionId ID = ((Remotewebdriver).getSessionId ();

Dans le code précédemment donné, la classe Remotewebdriver est utilisée pour récupérer l'ID de session du webdriver. Un serveur WebDriver est utilisé pour communiquer avec un navigateur Web distant à l'aide de la classe Remotewebdriver, une sous-classe de la classe WebDriver. La méthode getSessionId () vérifie si la session est nul.

Système.dehors.println ("Get Session ID après fermer la méthode:" + id);

Le système.dehors.println () est la fonction java qui est utilisée pour imprimer la chaîne et les valeurs variables. Ici, nous imprimons l'ID de session du webdriver.

Dans la capture d'écran suivante, nous pouvons voir le résultat de sortie du code exécuté:

Comme vous pouvez l'observer, après avoir exécuté le code précédent, la méthode QUIT () ferme tous les onglets du navigateur ouvert et détruit la session WebDriver qui est imprimée dans la console précédente qui est nul.

Conclusion

Vous avez appris les deux méthodes de fermeture du navigateur: clôture () et Quit () Méthodes. Cet article explique les deux méthodes en détail sur où utiliser la méthode Close () et où utiliser la méthode quit (). Ensuite, nous avons mis en œuvre les deux approches avec l'exemple pour vérifier si l'ID de session WebDriver est vivant ou non. Ce tutoriel est le meilleur pour les développeurs débutants et expérimentés.