Kuidas küpsiseid sees käsitleda Selenium Veebidraiver

HTTP-küpsis sisaldab teavet kasutaja ja tema eelistuste kohta. See salvestab teabe võtme-väärtuse paari abil. See on väike osa andmeid, mis saadetakse veebirakendusest ja salvestatakse veebibrauseris, kui kasutaja seda veebisaiti sirvib.

Lisateabe saamiseks klõpsake siin küpsiste testimine.

Selenium Küpsiste käsud

In Selenium Veebidraiver, saame küpsiseid päringuid teha ja nendega suhelda alloleva sisseehitatud meetodiga:

Selenium Päringu käsud Väljund
driver.manage().getCookies(); Tagasta kõigi küpsiste loend
driver.manage().getCookieNamed(arg0); Tagastab konkreetse küpsise nime järgi
driver.manage().addCookie(arg0); Looge ja lisage küpsis
driver.manage().deleteCookie(arg0); Kustutage konkreetne küpsis
driver.manage().deleteCookieNamed(arg0); Kustutage konkreetne küpsis vastavalt nimele
driver.manage().deleteAllCookies(); Kustuta kõik küpsised

Miks küpsiseid tuleb käsitleda (aktsepteerida) Selenium?

Iga küpsis on seotud nime, väärtuse, domeeni, tee, aegumise ja olekuga, kas see on turvaline või mitte. Kliendi kinnitamiseks parsib server kõik need väärtused küpsises.

Kui Testimine seleeni veebidraiverit kasutav veebirakendus, peate võib-olla looma, värskendama või kustutama küpsise.

Näiteks veebiosturakenduse automatiseerimisel tuleb paljudel automatiseerida teststsenaariume, nagu tellimuse esitamine, ostukorvi vaatamine, makseteave, tellimuse kinnitus jne.

Kui küpsiseid ei salvestata, peate enne ülaltoodud teststsenaariumide käivitamist iga kord sisselogimistoimingu tegema. See suurendab teie kodeerimistööd ja täitmise aega.

Lahenduseks on küpsiste salvestamine faili. Later, hankige sellest failist küpsise väärtused ja lisage sellele oma praegune brauseri seanss. Selle tulemusena saate igas sisselogimistoimingus vahele jätta Testjuhtum sest teie juhiseansis on see teave sees.

Rakendusserver käsitleb nüüd teie brauseri seanssi autentituna ja suunab teid otse teie soovitud URL-ile.

Kuidas küpsiseid sees käsitleda Selenium

Me kasutame https://demo.guru99.com/test/cookie/selenium_aut.php meie demo eesmärgil.

See on 2-etapiline protsess.

Step 1) Logige rakendusse sisse ja salvestage loodud autentimisküpsis.

Käsitsege küpsiseid Selenium

Step 2) Kasutas salvestatud küpsist, et uuesti rakendusse sisse logida ilma kasutajatunnust ja parooli kasutamata.

Samm 1) Küpsiste teabe salvestamine

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();			
        }		
    }		
}

Koodi selgitus:

  • Looge WebDriveri eksemplar
  • Külastame veebisaiti driver.get(“https://demo.guru99.com/test/cookie/selenium_aut.php”) abil
  • Logige rakendusse sisse
  • Lugege küpsiste teavet kasutades
    driver.manage().getCookies();
  • Salvestage küpsise teave, kasutades FileWriter Classi märgivoo kirjutamiseks ja BufferedWriter teksti kirjutamiseks faili, et luua failiks Cookies.data
  • Fail „Cookies.data” salvestab kogu küpsiste teabe koos „Nimi, väärtuse, domeeni ja teega”. Saame selle teabe hankida ja rakendusse sisse logida ilma sisselogimismandaate sisestamata.
  • Kui olete ülaltoodud koodi käivitanud, luuakse fail Cookie.data projekti kaustastruktuuri, nagu on näidatud alloleval ekraanil. Avage fail Cookie.data, näete, et AUT-i sisselogimismandaat on salvestatud küpsisevormingus, vaadake allpool esiletõstetud ekraani

    Käsitsege küpsiseid Selenium

2. samm) Salvestatud küpsise kasutamine rakendusse sisselogimiseks

Nüüd pääseme juurde sammus 1 loodud küpsisele ja kasutame loodud küpsist rakenduses meie seansi autentimiseks

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");					
}	
	}	

Väljund: Teid suunatakse otse sisselogimise õnnestumise ekraanile, sisestamata kasutajatunnust ja parooli

MÄRKUS: Kasutage kõva värskendust juhuks, kui näete pärast ülaltoodud skripti täitmist sisselogimislehte.

Järeldus

Nii saate vältida kasutajanime ja parooli sisestamist serverisse, kinnitades neid iga testi jaoks uuesti ja uuesti, kasutades Selenium Veebidraiver ja säästab seeläbi palju aega.