Rukovanje kolačićima u programu Selenium WebDriver

Sadržaj:

Anonim

HTTP kolačić sastoji se od podataka o korisniku i njegovim preferencijama. Pohranjuje podatke pomoću para ključ / vrijednost. To je mali dio podataka poslan iz web aplikacije i pohranjen u web pregledniku, dok korisnik pregledava tu web stranicu.

Kliknite ovdje da biste saznali više o testiranju kolačića.

U ovom uputstvu naučit ćemo -

  • Naredbe upita za selen za kolačiće
  • Zašto rukovati kolačićima u selenu?
  • Demo: Rukovanje kolačićima u selenu.
  • Korak 1) Pohranjivanje podataka o kolačićima.
  • Korak 2) Upotreba pohranjenog kolačića za prijavu u aplikaciju.

Naredbe upita za selen za kolačiće

U programu Selenium Webdriver možemo postavljati upite i komunicirati s kolačićima pomoću dolje ugrađene metode:

driver.manage (). getCookies (); // Povratak na popis svih kolačićadriver.manage (). getCookieNamed (arg0); // Vrati određeni kolačić prema imenudriver.manage (). addCookie (arg0); // Stvorite i dodajte kolačićdriver.manage (). deleteCookie (arg0); // Izbriši određeni kolačićdriver.manage (). deleteCookieNamed (arg0); // Izbriši određeni kolačić prema imenudriver.manage (). deleteAllCookies (); // Izbriši sve kolačiće

Zašto rukovati kolačićima u selenu?

Svaki je kolačić povezan s imenom, vrijednošću, domenom, stazom, istekom i statusom je li siguran ili ne. Da bi provjerio klijenta, poslužitelj raščlanjuje sve ove vrijednosti u kolačiću.

Kada testirate web-aplikaciju pomoću selenovog web-upravljačkog programa, možda ćete trebati stvoriti, ažurirati ili izbrisati kolačić.

Na primjer, kada automatizirate aplikaciju za online kupnju, mnogi trebaju automatizirati scenarije testiranja poput narudžbe, pregleda košarice, podataka o plaćanju, potvrde narudžbe itd.

Ako kolačići nisu pohranjeni, morat ćete izvršiti radnju prijave svaki put prije izvođenja gore navedenih scenarija ispitivanja. To će povećati vaš napor kod kodiranja i vrijeme izvršenja.

Rješenje je pohranjivanje kolačića u datoteku. Kasnije dohvatite vrijednosti kolačića iz ove datoteke i dodajte joj svoju trenutnu sesiju preglednika. Kao rezultat toga, možete preskočiti korake prijave u svakom test slučaju, jer vaša sesija vozača sadrži ove podatke.

Poslužitelj aplikacija sada vašu sesiju preglednika tretira kao provjerenu i izravno vas vodi do traženog URL-a.

Demo: Rukovanje kolačićima u selenu.

U našu demo svrhu koristit ćemo http://demo.guru99.com/test/cookie/selenium_aut.php.

Ovo će biti postupak u dva koraka.

Korak 1) Prijavite se u aplikaciju i spremite generirani kolačić za provjeru autentičnosti.

Korak 2) Koristite pohranjeni kolačić za ponovnu prijavu u program bez upotrebe korisničkog imena i lozinke.

Korak 1) Pohranjivanje podataka o kolačićima.

paket CookieExample;import java.io.BufferedWriter;import java.io.File;import java.io.FileWriter;import java.util.Set;uvoz org.openqa.selenium.By;uvoz org.openqa.selenium.WebDriver;uvoz org.openqa.selenium.chrome.ChromeDriver;uvoz org.openqa.selenium.Cookie;javni razred cookieRead {javna statička void glavna (String [] args){Upravljački program za WebDriver;System.setProperty ("webdriver.chrome.driver", "G: ///chromedriver.exe");upravljački program = novi ChromeDriver ();driver.get ("http://demo.guru99.com/test/cookie/selenium_aut.php");// Unesite ID e-pošte i lozinku Ako ste već registriranidriver.findElement (By.name ("korisničko ime")). sendKeys ("abc123");driver.findElement (By.name ("lozinka")). sendKeys ("123xyz");driver.findElement (By.name ("submit")). click ();// stvorimo datoteku pod nazivom Cookies za pohranu podataka o prijaviDatoteka datoteke = nova datoteka ("Cookies.data");probati{// Izbriši staru datoteku ako postojifile.delete ();file.createNewFile ();FileWriter fileWrite = novi FileWriter (datoteka);BufferedWriter Bwrite = novi BufferedWriter (fileWrite);// petlja za dobivanje podataka o kolačićima// petlja za dobivanje podataka o kolačićimaza (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 ();}ulov (izuzetak ex){npr.printStackTrace ();}}}

Objašnjenje koda:

  • Stvorite instancu WebDriver
  • Web stranicu posjećujemo pomoću driver.get ("http://demo.guru99.com/test/cookie/selenium_aut.php")
  • Prijavite se u aplikaciju
  • Pročitajte podatke o kolačićima pomoću
    driver.manage (). getCookies (); 
  • Pohranite podatke o kolačićima pomoću klase FileWriter za pisanje tokova znakova i BufferedWriter za pisanje teksta u datoteku za stvaranje u datoteku Cookies.data
  • Datoteka "Cookies.data" pohranjuje sve podatke o kolačićima zajedno s "Ime, vrijednost, domena, put". Te podatke možemo pristupiti i prijaviti se u aplikaciju bez unosa vjerodajnica za prijavu.
  • Jednom kada pokrenete gornji kod, datoteka Cookie.data kreira se u strukturi mape projekta, kao što je prikazano na donjem zaslonu. Otvorite datoteku Cookie.data, možete vidjeti vjerodajnice za prijavu AUT-a spremljene u formatu Cookie-a, pogledajte dolje istaknuti zaslon

Korak 2) Upotreba pohranjenog kolačića za prijavu u aplikaciju.

Sada ćemo pristupiti kolačiću generiranom u koraku 1 i pomoću generiranog kolačića provjeriti autentičnost naše sesije u aplikaciji

paket CookieExample;import java.io.BufferedReader;import java.io.File;import java.io.FileReader;import java.util.Date;import java.util.StringTokenizer;uvoz org.openqa.selenium.Cookie;uvoz org.openqa.selenium.WebDriver;uvoz org.openqa.selenium.chrome.ChromeDriver;javna klasa CookieWrite{javna statička void glavna (String [] args) {Upravljački program za WebDriver;System.setProperty ("webdriver.chrome.driver", "G: //chromedriver.exe");upravljački program = novi ChromeDriver ();probati{Datoteka datoteke = nova datoteka ("Cookies.data");FileReader fileReader = novi FileReader (datoteka);BufferedReader Buffreader = novi BufferedReader (fileReader);Niz strline;while ((strline = Buffreader.readLine ())! = null) {StringTokenizer token = novi StringTokenizer (strline, ";");while (token.hasMoreTokens ()) {Naziv niza = token.nextToken ();Vrijednost niza = token.nextToken ();Niz domene = token.nextToken ();Put niza = token.nextToken ();Datum isteka = null;Žica val;if (! (val = token.nextToken ()). jednako ("null")){istek = novi datum (val);}Boolean isSecure = novo Boolean (token.nextToken ()).booleanValue ();Kolačić ck = novi kolačić (ime, vrijednost, domena, put, istek, isSecure);System.out.println (ck);driver.manage (). addCookie (ck); // Ovo će dodati pohranjeni kolačić u vašu trenutnu sesiju}}} catch (Iznimka ex) {npr.printStackTrace ();}driver.get ("http://demo.guru99.com/test/cookie/selenium_aut.php");}}

IZLAZ: Preusmjereni ste izravno na zaslon uspješnog prijavljivanja bez unosa ulaznog korisničkog ID-a i lozinke

NAPOMENA: Koristite tvrdo osvježavanje u slučaju da nakon izvršenja gornje skripte vidite stranicu za prijavu.

Zaključak

Dakle, možete izbjeći unos korisničkog imena i lozinke na poslužitelj, provjeravajući ih iznova i iznova za svaki test uz pomoć Selenium Webdriver i na taj način štedite puno vremena.

Ovaj je članak napisao Mangesh Waghmare