Kako postupati s kolačićima u Selenium webdriver

HTTP kolačić sastoji se od informacija o korisniku i njegovim preferencijama. Pohranjuje informacije 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 testiranje kolačića.

Selenium Naredbe upita za kolačiće

In Selenium Webdriver, možemo postavljati upite i komunicirati s kolačićima pomoću ispod ugrađene metode:

Selenium Naredbe upita Izlaz
driver.manage().getCookies(); Vrati popis svih kolačića
driver.manage().getCookieNamed(arg0); Vrati određeni kolačić prema imenu
driver.manage().addCookie(arg0); Izradite i dodajte kolačić
driver.manage().deleteCookie(arg0); Izbriši određeni kolačić
driver.manage().deleteCookieNamed(arg0); Izbrišite određeni kolačić prema imenu
driver.manage().deleteAllCookies(); Izbriši sve kolačiće

Zašto rukovati (prihvaćati) kolačiće Selenium?

Svaki kolačić povezan je s imenom, vrijednošću, domenom, putanjom, istekom i statusom je li siguran ili ne. Kako bi potvrdio valjanost klijenta, poslužitelj analizira sve te vrijednosti u kolačiću.

Kada Ispitivanje web aplikacije koja koristi selenium web driver, možda ćete morati stvoriti, ažurirati ili izbrisati kolačić.

Na primjer, kada automatizirate aplikaciju za online kupnju, morate automatizirati testne scenarije kao što su narudžba, pregled košarice, podaci o plaćanju, potvrda narudžbe itd.

Ako kolačići nisu pohranjeni, morat ćete izvršiti radnju prijave svaki put prije nego što izvršite gore navedene testne scenarije. To će povećati vaš trud kodiranja i vrijeme izvođenja.

Rješenje je pohraniti kolačiće u datoteku. Later, dohvatite vrijednosti kolačića iz ove datoteke i dodajte joj trenutnu sesiju preglednika. Kao rezultat toga, možete preskočiti korake prijave u svakom Testni slučaj jer vaša sesija vozača ima ove informacije u sebi.

Aplikacijski poslužitelj sada tretira vašu sesiju preglednika kao provjerenu i izravno vas vodi na traženi URL.

Kako postupati s kolačićima u Selenium

Koristit ćemo https://demo.guru99.com/test/cookie/selenium_aut.php za našu demo svrhu.

Ovo će biti proces od 2 koraka.

Korak 1) Prijavite se u aplikaciju i pohranite generirani autentifikacijski kolačić.

Rukovati kolačićima Selenium

Korak 2) Koristio je pohranjeni kolačić za ponovnu prijavu u aplikaciju bez korištenja korisničkog imena i lozinke.

Korak 1) Pohranjivanje informacija o kolačićima

package 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;		

public class cookieRead{	
        public static void main(String[] args)		
    {
    	WebDriver driver;	
        System.setProperty("webdriver.chrome.driver","G:///chromedriver.exe");					
		driver=new ChromeDriver();        
		driver.get("https://demo.guru99.com/test/cookie/selenium_aut.php");

       				
        // Input Email id and Password If you are already Register		
        driver.findElement(By.name("username")).sendKeys("abc123");							
        driver.findElement(By.name("password")).sendKeys("123xyz");							
        driver.findElement(By.name("submit")).click();					
        		
        // create file named Cookies to store Login Information		
        File file = new File("Cookies.data");							
        try		
        {	  
            // Delete old file if exists
			file.delete();		
            file.createNewFile();			
            FileWriter fileWrite = new FileWriter(file);							
            BufferedWriter Bwrite = new BufferedWriter(fileWrite);							
            // loop for getting the cookie information 		
            	
            // loop for getting the cookie information 		
            for(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();	
            
        }
        catch(Exception ex)					
        {		
            ex.printStackTrace();			
        }		
    }		
}

Objašnjenje koda:

  • Stvorite primjerak WebDrivera
  • Web stranicu posjećujemo koristeći driver.get(“https://demo.guru99.com/test/cookie/selenium_aut.php”)
  • Prijavite se u aplikaciju
  • Pročitajte informacije o kolačićima pomoću
    driver.manage().getCookies();
  • Pohranite informacije o kolačićima koristeći FileWriter Class za pisanje tokova znakova i BufferedWriter za pisanje teksta u datoteku za stvaranje u datoteku Cookies.data
  • Datoteka "Cookies.data" pohranjuje sve informacije o kolačićima zajedno s "Nazivom, vrijednošću, domenom, stazom". Možemo dohvatiti ove podatke i prijaviti se u aplikaciju bez unosa vjerodajnica za prijavu.
  • Nakon što 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 da su vjerodajnice za prijavu AUT-a spremljene u formatu Cookie, pogledajte dolje označeni zaslon

    Rukovati kolačićima Selenium

Korak 2) Korištenje pohranjenog kolačića za prijavu u aplikaciju

Sada ćemo pristupiti kolačiću generiranom u koraku 1 i koristiti generirani kolačić za provjeru autentičnosti naše sesije u aplikaciji

package 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;

public class CookieWrite		
{		
  
	public static void main(String[] args){ 
    	WebDriver driver;     
       	System.setProperty("webdriver.chrome.driver","G://chromedriver.exe");					
        driver=new ChromeDriver();					
    try{			
     
        File file = new File("Cookies.data");							
        FileReader fileReader = new FileReader(file);							
        BufferedReader Buffreader = new BufferedReader(fileReader);							
        String strline;			
        while((strline=Buffreader.readLine())!=null){									
        StringTokenizer token = new StringTokenizer(strline,";");									
        while(token.hasMoreTokens()){					
        String name = token.nextToken();					
        String value = token.nextToken();					
        String domain = token.nextToken();					
        String path = token.nextToken();					
        Date expiry = null;					
        		
        String val;			
        if(!(val=token.nextToken()).equals("null"))
		{		
        	expiry = new Date(val);					
        }		
        Boolean isSecure = new Boolean(token.nextToken()).								
        booleanValue();		
        Cookie ck = new Cookie(name,value,domain,path,expiry,isSecure);			
        System.out.println(ck);
        driver.manage().addCookie(ck); // This will add the stored cookie to your current session					
        }		
        }		
        }catch(Exception ex){					
        ex.printStackTrace();			
        }		
        driver.get("https://demo.guru99.com/test/cookie/selenium_aut.php");					
}	
	}	

Izlaz: Preusmjeravate se izravno na zaslon uspješne prijave bez unosa korisničkog ID-a i lozinke

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

Zaključak

Tako možete izbjeći unos korisničkog imena i lozinke na poslužitelju, provjeravajući ih iznova i iznova za svaki test uz pomoć Selenium Webdriver i time štedi puno vremena.