Hogyan kezeljük a cookie-kat Selenium webdriver

A HTTP cookie a felhasználóról és preferenciáiról szóló információkat tartalmaz. Kulcs-érték pár segítségével tárolja az információkat. Ez egy kis adat, amelyet a webalkalmazás küld, és a webböngészőben tárol, miközben a felhasználó az adott webhelyet böngészi.

Kattintson ide a további információkért cookie tesztelés.

Selenium Parancsok lekérdezése cookie-khoz

In Selenium Webdriver, az alábbi beépített módszerrel tudunk cookie-kat lekérdezni és kommunikálni velük:

Selenium Parancsok lekérdezése teljesítmény
driver.manage().getCookies(); Vissza az összes cookie listáját
driver.manage().getCookieNamed(arg0); Adott cookie-t küld vissza a névnek megfelelően
driver.manage().addCookie(arg0); Hozd létre és add hozzá a cookie-t
driver.manage().deleteCookie(arg0); Adott cookie törlése
driver.manage().deleteCookieNamed(arg0); Törölje az adott cookie-t a Név szerint
driver.manage().deleteAllCookies(); Törölje az összes cookie-t

Miért kell kezelni (elfogadni) a cookie-kat? Selenium?

Minden cookie névhez, értékhez, domainhez, elérési úthoz, lejárathoz és annak állapotához van társítva, hogy biztonságos-e vagy sem. A kliens érvényesítése érdekében a szerver ezeket az értékeket egy cookie-ban elemzi.

Amikor Tesztelés szelén web-illesztőprogramot használó webalkalmazás esetén előfordulhat, hogy cookie-t kell létrehoznia, frissítenie vagy törölnie kell.

Például az online vásárlási alkalmazás automatizálása során sok olyan tesztforgatókönyvet kell automatizálnia, mint a rendelés leadása, a kosár megtekintése, a fizetési információk, a megrendelés visszaigazolása stb.

Ha a cookie-k nincsenek tárolva, akkor minden alkalommal be kell jelentkeznie, mielőtt végrehajtaná a fent felsorolt ​​tesztforgatókönyveket. Ez növeli a kódolási erőfeszítést és a végrehajtási időt.

A megoldás a cookie-k fájlban való tárolása. Later, kérje le a cookie értékeit ebből a fájlból, és adja hozzá az aktuális böngésző munkamenetét. Ennek eredményeként minden esetben kihagyhatja a bejelentkezési lépéseket Teszt eset mert a vezetői munkamenetben ez az információ benne van.

Az alkalmazásszerver mostantól hitelesítettként kezeli a böngésző munkamenetét, és közvetlenül a kért URL-re viszi Önt.

Hogyan kezeljük a cookie-kat Selenium

Használni fogjuk https://demo.guru99.com/test/cookie/selenium_aut.php demó célunkra.

Ez egy 2 lépésből álló folyamat lesz.

Step 1) Jelentkezzen be az alkalmazásba, és tárolja a generált hitelesítő cookie-t.

Kezelje a cookie-kat Selenium

Step 2) A tárolt cookie-t használta, hogy felhasználói azonosító és jelszó nélkül ismét bejelentkezzen az alkalmazásba.

1. lépés) Cookie-információk tárolása

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

Kód magyarázata:

  • WebDriver példány létrehozása
  • A webhelyet a driver.get(“https://demo.guru99.com/test/cookie/selenium_aut.php”) használatával látogatjuk meg.
  • Jelentkezzen be az Alkalmazásba
  • Olvassa el a süti információkat a használatával
    driver.manage().getCookies();
  • Tárolja a cookie-információkat a FileWriter Class használatával karakterfolyamok írásához és BufferAz edWriter a szöveget fájlba írja, és Cookies.data fájlba hozza létre
  • A „Cookies.data” fájl tárolja a cookie-kra vonatkozó összes információt a „Név, Érték, Domain, Elérési út” mellett. Ezeket az információkat lekérhetjük, és a bejelentkezési adatok megadása nélkül bejelentkezhetünk az alkalmazásba.
  • A fenti kód futtatása után a Cookie.data fájl létrejön a projekt mappastruktúrájában az alábbi képernyőn látható módon. Nyissa meg a Cookie.data fájlt, láthatja, hogy az AUT bejelentkezési adatai Cookie formátumban vannak elmentve, lásd az alábbi kiemelt képernyőt

    Kezelje a cookie-kat Selenium

2. lépés) Tárolt cookie használata az alkalmazásba való bejelentkezéshez

Most hozzáférünk a 1. lépésben generált cookie-hoz, és a generált cookie-t használjuk a munkamenetünk hitelesítésére az alkalmazásban

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

output: A bevitt felhasználói azonosító és jelszó megadása nélkül közvetlenül a sikeres bejelentkezési képernyőre kerül

JEGYZET: Használjon kemény frissítést arra az esetre, ha a fenti szkript végrehajtása után megjelenik a bejelentkezési oldal.

Következtetés

Így elkerülheti, hogy a felhasználónév és jelszó megadása a szerveren újra és újra érvényesítse azokat minden tesztnél a Selenium Webdriver, és ezáltal sok időt takarít meg.