Un cookie HTTP cuprinde informații despre utilizator și preferințele acestuia. Stochează informații folosind o pereche cheie-valoare. Este o mică bucată de date trimise din aplicația web și stocate în browserul web, în timp ce utilizatorul navighează pe acel site web.
Faceți clic aici pentru a afla despre testarea cookie-urilor.
În acest tutorial, vom învăța -
- Comenzi de interogare cu seleniu pentru cookie-uri
- De ce să manipulăm cookie-urile în seleniu?
- Demo: Manevrarea cookie-urilor în seleniu.
- Pasul 1) Stocarea informațiilor despre cookie.
- Pasul 2) Utilizarea cookie-urilor stocate pentru a vă autentifica în aplicație.
Comenzi de interogare cu seleniu pentru cookie-uri
În Selenium Webdriver, putem interoga și interacționa cu cookie-uri cu metoda de mai jos încorporată:
driver.manage (). getCookies (); // Reveniți lista tuturor cookie-urilordriver.manage (). getCookieNamed (arg0); // Returnați un cookie specific în funcție de numedriver.manage (). addCookie (arg0); // Creați și adăugați cookie-uldriver.manage (). deleteCookie (arg0); // Ștergeți un anumit cookiedriver.manage (). deleteCookieNamed (arg0); // Ștergeți un anumit cookie conform Numedriver.manage (). deleteAllCookies (); // Ștergeți toate cookie-urile
De ce să manipulăm cookie-urile în seleniu?
Fiecare cookie este asociat cu un nume, valoare, domeniu, cale, expirare și starea dacă este sigur sau nu. Pentru a valida un client, un server analizează toate aceste valori într-un cookie.
Când testați o aplicație web utilizând driverul web seleniu, poate fi necesar să creați, să actualizați sau să ștergeți un cookie.
De exemplu, când automatizați aplicația de cumpărături online, mulți trebuie să automatizeze scenarii de testare, cum ar fi comanda plasării, vizualizarea coșului, informațiile de plată, confirmarea comenzii etc.
Dacă cookie-urile nu sunt stocate, va trebui să efectuați acțiunea de conectare de fiecare dată înainte de a executa scenariile de test menționate mai sus. Acest lucru vă va spori efortul de codificare și timpul de execuție.
Soluția este stocarea cookie-urilor într-un fișier. Mai târziu, recuperați valorile cookie-urilor din acest fișier și adăugați la acesta sesiunea curentă a browserului. Ca urmare, puteți sări peste pașii de conectare în fiecare caz de testare, deoarece sesiunea dvs. de șofer conține aceste informații.
Serverul de aplicații tratează acum sesiunea browserului dvs. ca autentificat și vă duce direct la adresa URL solicitată.
Demo: Manevrarea cookie-urilor în seleniu.
Vom folosi http://demo.guru99.com/test/cookie/selenium_aut.php în scopul demonstrativ.
Acesta va fi un proces în doi pași.
Pasul 1) Conectați-vă la aplicație și stocați cookie-ul de autentificare generat.
Pasul 2) A folosit cookie-ul stocat, pentru a vă conecta din nou la aplicație fără a utiliza userid și parolă.
Pasul 1) Stocarea informațiilor despre cookie.
pachet CookieExample;import java.io.BufferedWriter;import java.io.File;import java.io.FileWriter;import java.util.Set;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.chrome.ChromeDriver;import org.openqa.selenium.Cookie;cookie de clasă publicăRead {public static main main (String [] args){Driver WebDriver;System.setProperty ("webdriver.chrome.driver", "G: ///chromedriver.exe");driver = nou ChromeDriver ();driver.get ("http://demo.guru99.com/test/cookie/selenium_aut.php");// Introduceți ID-ul de e-mail și parola Dacă sunteți deja Înregistrați-vădriver.findElement (By.name ("nume de utilizator")). sendKeys ("abc123");driver.findElement (By.name ("parolă")). sendKeys ("123xyz");driver.findElement (By.name ("submit")). faceți clic pe ();// creați fișierul numit Cookie-uri pentru a stoca informații de conectareFișier fișier = fișier nou („Cookies.data”);încerca{// Ștergeți fișierul vechi, dacă existăfile.delete ();file.createNewFile ();FileWriter fileWrite = nou FileWriter (fișier);BufferedWriter Bwrite = nou BufferedWriter (fileWrite);// buclă pentru obținerea informațiilor despre cookie// buclă pentru obținerea informațiilor despre cookiepentru (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 ();}captură (Excepție ex){ex.printStackTrace ();}}}
Explicatie cod:
- Creați o instanță WebDriver
- Vizităm site-ul web folosind driver.get („http://demo.guru99.com/test/cookie/selenium_aut.php”)
- Conectați-vă la aplicație
- Citiți informațiile despre cookie folosind
driver.manage (). getCookies ();
- Stocați informațiile despre cookie folosind Clasa FileWriter pentru a scrie fluxuri de caractere și BufferedWriter pentru a scrie textul într-un fișier pentru a crea într-un fișier Cookies.data
- Fișierul „Cookies.data” stochează toate informațiile despre cookie-uri împreună cu „Nume, valoare, domeniu, cale”. Putem prelua aceste informații și să ne conectăm la aplicație fără a introduce datele de conectare.
- Odată ce ați rulat mai sus codul, fișierul Cookie.data este creat în structura folderelor de proiect așa cum se arată în ecranul de mai jos. Deschideți fișierul Cookie.data, puteți vedea acreditările de autentificare ale AUT sunt salvate în formatul Cookie, vedeți ecranul evidențiat mai jos
Pasul 2) Utilizarea cookie-urilor stocate pentru a vă autentifica în aplicație.
Acum, vom accesa cookie-ul generat la pasul 1 și vom folosi cookie-ul generat pentru a autentifica sesiunea noastră în aplicație
pachet CookieExample;import java.io.BufferedReader;import java.io.File;import java.io.FileReader;import java.util.Date;import java.util.StringTokenizer;import org.openqa.selenium.Cookie;import org.openqa.selenium.WebDriver;import org.openqa.selenium.chrome.ChromeDriver;clasă publică CookieWrite{public static main main (String [] args) {Driver WebDriver;System.setProperty ("webdriver.chrome.driver", "G: //chromedriver.exe");driver = nou ChromeDriver ();încerca{Fișier fișier = fișier nou („Cookies.data”);FileReader fileReader = nou FileReader (fișier);BufferedReader Buffreader = nou BufferedReader (fileReader);String șir;while ((strline = Buffreader.readLine ())! = null) {StringTokenizer token = nou StringTokenizer (strline, ";");while (token.hasMoreTokens ()) {Numele șirului = token.nextToken ();String value = token.nextToken ();String domain = token.nextToken ();String path = token.nextToken ();Data expirării = nul;Șir val;if (! (val = token.nextToken ()). egal cu ("nul")){expirare = data noua (val);}Boolean isSecure = new Boolean (token.nextToken ()).booleanValue ();Cookie ck = cookie nou (nume, valoare, domeniu, cale, expirare, este sigur);System.out.println (ck);driver.manage (). addCookie (ck); // Aceasta va adăuga cookie-ul stocat la sesiunea dvs. curentă}}} catch (Exception ex) {ex.printStackTrace ();}driver.get ("http://demo.guru99.com/test/cookie/selenium_aut.php");}}
IEȘIRE: Sunteți condus direct la ecranul de succes al conectării fără a introduce codul de utilizator și parola de intrare
NOTĂ: Utilizați hard refresh în cazul în care vedeți pagina de conectare după executarea scriptului de mai sus.
Concluzie
Astfel, puteți evita introducerea numelui de utilizator și a parolei pe server, validându-le din nou și din nou pentru fiecare test cu ajutorul Selenium Webdriver și, astfel, economisiți mult timp.
Acest articol este contribuit de Mangesh Waghmare