Hvordan lukke en nettleser i Selenium

Hvordan lukke en nettleser i Selenium

I denne artikkelen vil vi diskutere om metodene for å lukke nettleseren. Selenium støtter to metoder for å lukke nettleseren: (1) Lukk () -metode og (2) Quit () -metoden. Men begge brukes i forskjellige situasjoner. Vi vil forklare hvordan og hvor vi bruker hver av dem med et implementert eksempel. Denne artikkelen implementerer to tilnærminger for å sjekke om WebDriver Session ID er aktiv eller null.

Hvordan lukke en nettleser i Selenium

Å stenge nettleseren er en av operasjonene når vi er ferdige med verifiseringstesting av nettstedet. Selenium -rammeverket gir også kommandoene for å lukke hele nettleseren eller fanene etter å ha fullført automatiseringstestingen ved hjelp av WebDriver.

Selenium støtter to metoder for å lukke nettleserne: (1) Driver.Lukk () og (2) driver.slutte(). Hvordan og når hver av metodene brukes blir forklart i følgende:

Lukk () Metode

Den lukkede () -metoden er en av operasjonene som støttes av Selenium for å lukke nettleservinduet som er i fokus. Hvis det er flere faner som er åpne i nettleseren, lukker bare den lukkede () -metoden, ved hjelp av webdrivere. Lukk () -metoden lukker bare den nåværende fanen, men ødelegger ikke WebDriver -økten.

Syntaksen for å lukke nettleservinduet er gitt i følgende:

sjåfør.Lukk()

Der "driveren" er forekomsten av webdriver.

Quit () Metode

Selenium -rammeverket støtter Quit () -operasjonen for å lukke alle de åpne fanene i nettleseren. Quit () -metode lar deg lukke alle fanene som er åpne i nettleseren. Nettleser -webdriver bruker Quit () -metoden for å avslutte WebDriver -økten som for tiden er aktiv.

Quit () -metoden lukker ikke bare alle åpnede nettleserfaner, men avslutter WebDriver -øktene ved å ringe driveren.Kast metode. I tilfelle webdriveren ikke ødelegger økten etter å ha lukket nettleservinduene, er det sjanser for å lekke minnefiler og feil som skal oppstå.

Syntaksen for å lukke nettleservinduet er gitt i følgende:

sjåfør.slutte()

Der "driveren" er forekomsten av webdriver.

Tilnærming 1: Lukk det gjeldende nettleservinduet mens du holder liv i WebDriver -økten

I Selenium muliggjør den lukkede () metoden WebDriver -økten i live etter å ha stengt den nåværende fanen. La oss ta et scenario der vi åpner nettleseren og lukker den for øyeblikket fokuserte fanen, og sjekk om økten ikke er stengt. For å gjøre det, bruker vi https: // www.eBay.com/ nettsted.

La oss begynne å implementere!

Først må du opprette Java -filen med navnet som Close_Browser.Java. Velg også alternativet med den statiske tomromsklassen. Deretter oppretter Java -filen automatisk den offentlige klassen med filnavnet og genererer en offentlig statisk tomrom hovedklasse. Koden er nevnt som følger:

public class close_browser
public static void main (String [] args)

La oss nå importere de nødvendige pakkene med WebDriver, SessionId, Remotewebdriver og Time.Varighet for implisitt klasse.

Her er koden for den nødvendige importpakken:

Importer Java.tid.Varighet;
Import org.Openqa.Selen.krom.Chromedriver;
Import org.Openqa.Selen.Fjernkontroll.Remotewebdriver;
Import org.Openqa.Selen.Fjernkontroll.Øktnummer;

Du kan henvise til hele koden som vi ga i det følgende. Etter det deler vi ned denne koden i små biter slik at du kan forstå hvilken funksjon hver og en serverer.

pakke ui;
Importer Java.tid.Varighet;
Import org.Openqa.Selen.krom.Chromedriver;
Import org.Openqa.Selen.Fjernkontroll.Remotewebdriver;
Import org.Openqa.Selen.Fjernkontroll.Øktnummer;
public class close_browser
public static void main (String [] args)
System.SetProperty ("Webdriver.krom.Driver "," C: \\ nettleserdrivere \\ Chromedriver.exe ");
Chromedriver Driver = new Chromedriver ();
sjåfør.få til().vindu().maksimere ();
sjåfør.få til().Timeouts ().Implisitt vises (varighet.av sekunder (10));
sjåfør.få ("https: // www.eBay.com/");
System.ute.Println ("Åpne eBay -nettstedet i Chrome Browser");
sjåfør.Lukk();
System.ute.Println ("Lukk nettleseren");
SessionId ID = ((RemoteWeBdriver) Driver).getSessionId ();
System.ute.println ("Få økt -ID etter å ha avsluttet metoden:" + ID);

La oss nå bryte ned den forrige kodelinjen for linje og forklare hvordan hver linje fungerer.

For denne scenarioimplementeringen bruker vi Chrome -nettleseren. I den første delen av koden, får du tilgang til den lokale katalogen til Chrome -driverne før du starter Chrome Browser -driverne.

Følgende syntaks brukes til å implementere den:

System.SetProperty ("Webdriver.krom.Driver "," C: \\ nettleserdrivere \\ Chromedriver.exe ");
Chromedriver Driver = new Chromedriver ();

Etter det maksimerer vi nettleservinduet ved å bruke følgende gitt syntaks:

sjåfør.få til().vindu().maksimere ();

Husk at å laste inn alle elementer på websiden, denne funksjonen venter til den implisitte ventetiden er gitt for sjåføren som vi har gitt i vår følgende kode:

sjåfør.få til().Timeouts ().Implisitt vises (varighet.av sekunder (10));
sjåfør.få ("https: // www.eBay.com/");

Det implictlyWait () er metoden for å utføre implisitt vent. Varighetsfunksjonen nevner tidsforsinkelsen, "av sekundet" er tidsenheten, mens programmet venter 10 sekunder på at elementene skal laste og åpne den forespurte URL -nettstedet.

Etter at den forespurte nettstedet åpnes i nettleseren, skriver du ut "Åpne eBay -nettstedet i Chrome Browser" i konsollen.

Her er syntaksen for å skrive ut teksten i konsollen:

System.ute.Println ("Åpne eBay -nettstedet i Chrome Browser");

I denne delen av koden lukker vi nå det for øyeblikket åpnet nettleservinduet ved hjelp av close () -metoden.

Her er syntakskoden for å lukke det gjeldende nettleservinduet og skrive ut “Lukk nettleseren” -teksten inn i konsollen:

sjåfør.Lukk();
System.ute.Println ("Lukk nettleseren");

Nå refererer den endelige delen av koden til å sjekke om økten er ødelagt eller ikke:

SessionId ID = ((RemoteWeBdriver) Driver).getSessionId ();

I den tidligere gitt koden brukes Remotewebdriver-klassen til å hente økt-IDen til webdriveren. En webdriver -server brukes til å kommunisere med en ekstern nettleser ved hjelp av RemoteWeBdriver -klassen, en underklasse av WebDriver -klassen. GetSessionId () -metoden brukes til å hente økt -IDen hvis den er aktiv.

System.ute.println ("Få økt -ID etter å ha avsluttet metoden:" + ID);

Systemet.ute.println () er Java -funksjonen som brukes til å skrive ut strengen og variable verdier. Her trykker vi økt -IDen til webdriveren.

I det følgende skjermbildet kan vi se utgangsresultatet av den utførte koden:

Som du kan observere, lukker den forrige koden for forrige kode (). Men likevel er WebDriver Session ID aktivert som skrives ut til forrige konsoll.

Tilnærming 2: Lukk hvert nettleservindu og avslutt WebDriver -økten

I Selenium gjør metoden Quit (). La oss ta scenariet, der vi åpner Chrome -nettleseren og lukker alle de åpnede fanene i Chrome -nettleseren, og sjekk om begge økt -ID -en blir null.

La oss begynne å implementere!

Du kan henvise til hele koden som vi ga i følgende illustrasjon. Etter det deler vi ned denne koden i små biter slik at du kan forstå hvilken funksjon hver og en serverer.

pakke ui;
Importer Java.tid.Varighet;
Import org.Openqa.Selen.krom.Chromedriver;
Import org.Openqa.Selen.Fjernkontroll.Remotewebdriver;
Import org.Openqa.Selen.Fjernkontroll.Øktnummer;
public class close_browser
public static void main (String [] args)
System.SetProperty ("Webdriver.krom.Driver "," C: \\ nettleserdrivere \\ Chromedriver.exe ");
Chromedriver Driver = new Chromedriver ();
sjåfør.få til().vindu().maksimere ();
sjåfør.få til().Timeouts ().Implisitt vises (varighet.av sekunder (10));
sjåfør.få ("https: // www.eBay.com/");
System.ute.Println ("Åpne eBay -nettstedet i Chrome Browser");
sjåfør.slutte();
System.ute.Println ("Lukk nettleseren");
SessionId ID = ((RemoteWeBdriver) Driver).getSessionId ();
System.ute.println ("Få økt -ID etter å ha avsluttet metoden:" + ID);

La oss nå bryte ned den medfølgende kodelinjen for linje og forklare hvordan hver linje fungerer.

For dette scenarioimplementeringen gjentar vi alle de samme trinnene i tilnærmingen nr. 1. For å starte nettleseren, maksimere nettleseren og implementere den implisitte ventetiden.

I denne delen av koden lukker vi nå alle vinduene åpnet nettlesere ved hjelp av QUIT () -metoden.

Her er syntakskoden for å lukke alle nettleservinduene og skrive ut "Lukk nettleseren" -teksten inn i konsollen:

sjåfør.slutte();
System.ute.Println ("Lukk nettleseren");

Nå refererer den endelige delen av koden til å sjekke om økten er ødelagt eller ikke:

SessionId ID = ((RemoteWeBdriver) Driver).getSessionId ();

I den tidligere gitt koden brukes Remotewebdriver-klassen til å hente økt-IDen til webdriveren. En webdriver -server brukes til å kommunisere med en ekstern nettleser ved hjelp av RemoteWeBdriver -klassen, en underklasse av WebDriver -klassen. GetSessionId () -metoden sjekker om økten er null.

System.ute.println ("Få økt -ID etter å ha avsluttet metoden:" + ID);

Systemet.ute.println () er Java -funksjonen som brukes til å skrive ut strengen og variable verdier. Her trykker vi økt -IDen til webdriveren.

I det følgende skjermbildet kan vi se utgangsresultatet av utført kode:

Som du kan observere, lukker metoden for forrige kode () -metoden alle de åpnede nettleser -fanene og ødelegger WebDriver -økten som er skrevet ut i forrige konsoll som er NULL.

Konklusjon

Du lærte de to metodene for å lukke nettleseren: lukk () og avslutte () metoder. Denne artikkelen forklarte begge metodene i detalj om hvor du kan bruke close () -metoden og hvor du kan bruke Quit () -metoden. Deretter implementerte vi begge tilnærmingene med eksemplet for å sjekke om WebDriver -sesjons -IDen er i live eller ikke. Denne opplæringen er best for både nybegynnere og erfarne utviklere.