En HTTP-cookie består af oplysninger om brugeren og deres præferencer. Den gemmer information ved hjælp af et nøgleværdipar. Det er et lille stykke data sendt fra webapplikation og gemt i webbrowser, mens brugeren gennemser det websted.
Klik her for at lære om test af cookies.
I denne vejledning lærer vi -
- Selen-forespørgselskommandoer til cookies
- Hvorfor håndtere cookies i selen?
- Demo: Cookiehåndtering i selen.
- Trin 1) Lagring af cookieoplysninger.
- Trin 2) Brug af lagret cookie til at logge ind på applikationen.
Selen-forespørgselskommandoer til cookies
I Selenium Webdriver kan vi forespørge og interagere med cookies med nedenstående indbyggede metode:
driver.manage (). getCookies (); // Returner listen over alle cookiesdriver.manage (). getCookieNamed (arg0); // Returner specifik cookie efter navndriver.manage (). addCookie (arg0); // Opret og tilføj cookiendriver.manage (). deleteCookie (arg0); // Slet specifik cookiedriver.manage (). deleteCookieNamed (arg0); // Slet specifik cookie efter navndriver.manage (). deleteAllCookies (); // Slet alle cookies
Hvorfor håndtere cookies i selen?
Hver cookie er knyttet til et navn, værdi, domæne, sti, udløb og status for, om det er sikkert eller ej. For at validere en klient, parser en server alle disse værdier i en cookie.
Når du tester en webapplikation ved hjælp af selen webdriver, skal du muligvis oprette, opdatere eller slette en cookie.
For eksempel, når du automatiserer Online Shopping-applikationen, skal du mange automatisere testscenarier som placeringsordre, Se indkøbskurv, Betalingsoplysninger, ordrebekræftelse osv.
Hvis der ikke gemmes cookies, skal du udføre loginhandling hver gang, før du udfører ovennævnte testscenarier. Dette øger din kodningsindsats og udførelsestid.
Løsningen er at gemme cookies i en fil. Senere skal du hente værdierne for cookie fra denne fil og føje den til din aktuelle browsersession. Som et resultat kan du springe login-trinene over i hver testsag, fordi din chaufførssession har disse oplysninger i sig.
Applikationsserveren behandler nu din browsersession som godkendt og fører dig direkte til din anmodede URL.
Demo: Cookiehåndtering i selen.
Vi bruger http://demo.guru99.com/test/cookie/selenium_aut.php til vores demo-formål.
Dette vil være en totrins proces.
Trin 1) Log ind på applikationen, og gem den genererede godkendelsescookie.
Trin 2) Brugte den gemte cookie til igen at logge ind på applikationen uden at bruge bruger-id og adgangskode.
Trin 1) Lagring af cookieoplysninger.
pakke Cookieeksempel;importere java.io.BufferedWriter;import java.io.File;importere java.io.FileWriter;importere java.util.Set;importer org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.chrome.ChromeDriver;import org.openqa.selenium.Cookie;offentlig klasse cookieLæs {offentlig statisk ugyldig hoved (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");// Indtast e-mail-id og adgangskode Hvis du allerede er tilmeldtdriver.findElement (By.name ("brugernavn")). sendKeys ("abc123");driver.findElement (By.name ("password")). sendKeys ("123xyz");driver.findElement (By.name ("send")). klik ();// Opret fil med navnet Cookies for at gemme loginoplysningerFilfil = ny fil ("Cookies.data");prøve{// Slet gammel fil, hvis den findesfile.delete ();file.createNewFile ();FileWriter fileWrite = ny FileWriter (fil);BufferedWriter Bwrite = ny BufferedWriter (fileWrite);// loop for at få cookieoplysningerne// loop for at få cookieoplysningernefor (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 (undtagelse ex){ex.printStackTrace ();}}}
Kode Forklaring:
- Opret WebDriver-forekomst
- Vi besøger webstedet ved hjælp af driver.get ("http://demo.guru99.com/test/cookie/selenium_aut.php")
- Log ind på applikationen
- Læs cookieoplysningerne ved hjælp af
driver.manage (). getCookies ();
- Gem cookieoplysningerne ved hjælp af FileWriter Class til at skrive streams af tegn og BufferedWriter til at skrive teksten i en fil for at oprette i en fil Cookies.data
- "Cookies.data" -filen gemmer alle cookiesoplysninger sammen med "Navn, værdi, domæne, sti". Vi kan hente disse oplysninger og logge ind i applikationen uden at indtaste loginoplysningerne.
- Når du har kørt over koden, oprettes Cookie.data-filen i projektmappestrukturen som vist på nedenstående skærm. Åbn Cookie.data-filen, du kan se loginoplysninger for AUT gemmes i formatet Cookie, se nedenstående fremhævede skærm
Trin 2) Brug af lagret cookie til at logge ind på applikationen.
Nu får vi adgang til den cookie, der blev genereret i trin 1, og bruger den genererede cookie til at godkende vores session i applikationen
pakke Cookieeksempel;importere java.io.BufferedReader;import java.io.File;importere java.io.FileReader;importere java.util.Date;importere java.util.StringTokenizer;import org.openqa.selenium.Cookie;import org.openqa.selenium.WebDriver;import 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 ()) {String name = token.nextToken ();Strengværdi = token.nextToken ();Strengdomæne = token.nextToken ();Strengsti = token.nextToken ();Udløbsdato = null;String val;hvis (! (val = token.nextToken ()). er lig med ("null")){udløb = ny dato (val);}Boolsk isSecure = ny boolsk (token.nextToken ()).booleanValue ();Cookie ck = ny Cookie (navn, værdi, domæne, sti, udløb, isSecure);System.out.println (ck);driver.manage (). addCookie (ck); // Dette tilføjer den gemte cookie til din aktuelle session}}} fangst (undtagelse ex) {ex.printStackTrace ();}driver.get ("http://demo.guru99.com/test/cookie/selenium_aut.php");}}
OUTPUT: Du føres direkte til skærmbilledet for login-succes uden at indtaste bruger-id og adgangskode
BEMÆRK: Brug hård opdatering, hvis du ser login-siden efter udførelse af ovenstående script.
Konklusion
Således kan du undgå at indtaste brugernavnet og adgangskoden på serveren, der validerer dem igen og igen for hver test ved hjælp af Selenium Webdriver, og sparer derved meget tid.
Denne artikel er bidraget af Mangesh Waghmare