Håndtering av informasjonskapsler i Selen WebDriver

Innholdsfortegnelse:

Anonim

En HTTP-informasjonskapsel består av informasjon om brukeren og deres preferanser. Den lagrer informasjon ved hjelp av et nøkkelverdipar. Det er en liten bit data sendt fra webapplikasjonen og lagret i nettleseren, mens brukeren surfer på nettstedet.

Klikk her for å lære mer om informasjonskapseltesting.

I denne opplæringen vil vi lære -

  • Selen-spørringskommandoer for informasjonskapsler
  • Hvorfor håndtere informasjonskapsler i selen?
  • Demo: Håndtering av informasjonskapsler i selen.
  • Trinn 1) Lagring av informasjonskapsel.
  • Trinn 2) Bruk lagret informasjonskapsel for å logge på applikasjonen.

Selen-spørringskommandoer for informasjonskapsler

I Selenium Webdriver kan vi spørre og samhandle med informasjonskapsler med den innebygde metoden nedenfor:

driver.manage (). getCookies (); // Returner listen over alle informasjonskapslerdriver.manage (). getCookieNamed (arg0); // Returner spesifikk informasjonskapsel etter navndriver.manage (). addCookie (arg0); // Opprett og legg til informasjonskapselendriver.manage (). deleteCookie (arg0); // Slett spesifikk informasjonskapseldriver.manage (). deleteCookieNamed (arg0); // Slett spesifikk informasjonskapsel i henhold til navndriver.manage (). deleteAllCookies (); // Slett alle informasjonskapsler

Hvorfor håndtere informasjonskapsler i selen?

Hver informasjonskapsel er knyttet til et navn, verdi, domene, bane, utløp og status for om den er sikker eller ikke. For å validere en klient, analyserer en server alle disse verdiene i en informasjonskapsel.

Når du tester en webapplikasjon ved hjelp av selen webdriver, må du kanskje opprette, oppdatere eller slette en informasjonskapsel.

For eksempel når du automatiserer Online Shopping-applikasjonen, trenger du mange å automatisere testscenarier som bestilling, Vis handlekurv, Betalingsinformasjon, ordrebekreftelse, etc.

Hvis informasjonskapsler ikke lagres, må du utføre påloggingshandling hver gang før du utfører testlistene ovenfor. Dette vil øke kodeinnsatsen og utførelsestiden.

Løsningen er å lagre informasjonskapsler i en fil. Senere, hente verdiene til informasjonskapsel fra denne filen og legg til den din nåværende nettleserøkt. Som et resultat kan du hoppe over påloggingstrinnene i hver testsak fordi sjåførøkten din har denne informasjonen.

Applikasjonsserveren behandler nå nettleserøkten din som autentisert og tar deg direkte til ønsket URL.

Demo: Håndtering av informasjonskapsler i selen.

Vi vil bruke http://demo.guru99.com/test/cookie/selenium_aut.php for vårt demo-formål.

Dette vil være en 2-trinns prosess.

Trinn 1) Logg inn på applikasjonen og lagre den genererte godkjenningskaken.

Trinn 2) Brukte den lagrede informasjonskapselen for å logge inn på applikasjonen igjen uten å bruke bruker-ID og passord.

Trinn 1) Lagring av informasjonskapsel.

pakke informasjonskapseleksempel;importere java.io.BufferedWriter;importere java.io.File;importere java.io.FileWriter;importere java.util.Set;importer org.openqa.selenium.By;importer org.openqa.selenium.WebDriver;importer org.openqa.selenium.chrome.ChromeDriver;importer org.openqa.selenium.Cookie;offentlig klasse informasjonskapsel Les {public static void main (String [] args){WebDriver driver;System.setProperty ("webdriver.chrome.driver", "G: ///chromedriver.exe");driver = ny ChromeDriver ();driver.get ("http://demo.guru99.com/test/cookie/selenium_aut.php");// Angi e-post-ID og passord Hvis du allerede er registrertdriver.findElement (By.name ("brukernavn")). sendKeys ("abc123");driver.findElement (By.name ("passord")). sendKeys ("123xyz");driver.findElement (By.name ("send")). klikk ();// opprett fil med navnet Cookies for å lagre påloggingsinformasjonFilfil = ny fil ("Cookies.data");prøve{// Slett gammel fil hvis den finnesfile.delete ();file.createNewFile ();FileWriter fileWrite = ny FileWriter (fil);BufferedWriter Bwrite = ny BufferedWriter (fileWrite);// loop for å få informasjonen om informasjonskapsler// loop for å få informasjonen om informasjonskapslerfor (Cookie ck: driver.manage (). getCookies ()){Bwrite.write ((ck.getName () + ";" + ck.getValue () + ";" + ck.getDomain () + ";" + ck.getPath () + ";" + ck.getExpiry () + ";" + ck.isSecure ()));Bwrite.newLine ();}Bwrite.close ();fileWrite.close ();}fangst (Unntak eks){ex.printStackTrace ();}}}

Kode Forklaring:

  • Opprett WebDriver-forekomst
  • Vi besøker nettstedet ved hjelp av driver.get ("http://demo.guru99.com/test/cookie/selenium_aut.php")
  • Logg inn på applikasjonen
  • Les informasjonen om informasjonskapsler ved hjelp av
    driver.manage (). getCookies (); 
  • Lagre informasjonen om informasjonskapsler ved hjelp av FileWriter Class for å skrive tegnstrømmer og BufferedWriter for å skrive teksten i en fil for å lage den til en fil Cookies.data
  • "Cookies.data" -filen lagrer all informasjon om informasjonskapsler sammen med "Navn, verdi, domene, bane". Vi kan hente denne informasjonen og logge på applikasjonen uten å oppgi påloggingsinformasjonen.
  • Når du har kjørt over koden, blir Cookie.data-filen opprettet i prosjektmappestrukturen som vist på skjermen nedenfor. Åpne Cookie.data-filen, du kan se påloggingsinformasjonen til AUT er lagret i formatet Cookie, se skjermbildet nedenfor.

Trinn 2) Bruk lagret informasjonskapsel for å logge på applikasjonen.

Nå får vi tilgang til informasjonskapselen som ble generert i trinn 1 og bruker informasjonskapslen som ble generert for å autentisere økten vår i applikasjonen

pakke informasjonskapseleksempel;importere java.io.BufferedReader;importere java.io.File;importere java.io.FileReader;importere java.util.Date;importere java.util.StringTokenizer;importer org.openqa.selenium.Cookie;importer org.openqa.selenium.WebDriver;importer org.openqa.selenium.chrome.ChromeDriver;offentlig klasse CookieWrite{public static void main (String [] args) {WebDriver driver;System.setProperty ("webdriver.chrome.driver", "G: //chromedriver.exe");driver = ny ChromeDriver ();prøve{Filfil = ny fil ("Cookies.data");FileReader fileReader = ny FileReader (fil);BufferedReader Buffreader = ny BufferedReader (fileReader);String strline;mens ((strline = Buffreader.readLine ())! = null) {StringTokenizer token = ny StringTokenizer (strline, ";");while (token.hasMoreTokens ()) {Strengnavn = token.nextToken ();Strengverdi = token.nextToken ();Strengdomene = token.nextToken ();Strengsti = token.nextToken ();Utløpsdato = null;String val;hvis (! (val = token.nextToken ()). er lik ("null")){utløp = ny dato (val);}Boolsk isSecure = ny boolsk (token.nextToken ()).booleanValue ();Cookie ck = ny Cookie (navn, verdi, domene, bane, utløp, isSecure);System.out.println (ck);driver.manage (). addCookie (ck); // Dette vil legge den lagrede informasjonskapselen til din nåværende økt}}} fangst (unntak eks) {ex.printStackTrace ();}driver.get ("http://demo.guru99.com/test/cookie/selenium_aut.php");}}

UTGANG: Du blir ført direkte til suksessskjermen for innlogging uten å oppgi bruker-ID og passord

MERKNAD: Bruk hard oppdatering i tilfelle du ser påloggingssiden etter å ha utført skriptet ovenfor.

Konklusjon

Dermed kan du unngå å angi brukernavn og passord på serveren som validerer dem igjen og igjen for hver test ved hjelp av Selenium Webdriver, og sparer dermed mye tid.

Denne artikkelen er bidratt av Mangesh Waghmare