Jak zacházet s cookies v Selenium webový ovladač

HTTP cookie se skládá z informací o uživateli a jeho preferencích. Ukládá informace pomocí páru klíč-hodnota. Jedná se o malý kousek dat odeslaný z webové aplikace a uložený ve webovém prohlížeči, zatímco uživatel prohlíží daný web.

Kliknutím sem získáte další informace testování cookies.

Selenium Příkazy dotazu na soubory cookie

In Selenium Webdriver, můžeme se dotazovat a interagovat s cookies pomocí níže vestavěné metody:

Selenium Příkazy dotazu Výstup
driver.manage().getCookies(); Vrátit seznam všech souborů cookie
driver.manage().getCookieNamed(arg0); Vraťte konkrétní cookie podle názvu
driver.manage().addCookie(arg0); Vytvořte a přidejte cookie
driver.manage().deleteCookie(arg0); Smazat konkrétní cookie
driver.manage().deleteCookieNamed(arg0); Smazat konkrétní cookie podle názvu
driver.manage().deleteAllCookies(); Smažte všechny soubory cookie

Proč zpracovávat (přijímat) soubory cookie v Selenium?

Každý soubor cookie je spojen s názvem, hodnotou, doménou, cestou, vypršením platnosti a stavem, zda je zabezpečený nebo ne. Za účelem ověření klienta server analyzuje všechny tyto hodnoty v souboru cookie.

Kdy Testování webovou aplikaci využívající selenový webový ovladač, možná budete muset vytvořit, aktualizovat nebo odstranit soubor cookie.

Například při automatizaci aplikace pro nakupování online potřebujete zautomatizovat testovací scénáře, jako je zadání objednávky, zobrazení košíku, informace o platbě, potvrzení objednávky atd.

Pokud soubory cookie nejsou uloženy, budete muset před provedením výše uvedených testovacích scénářů pokaždé provést přihlašovací akci. Tím se zvýší vaše úsilí při kódování a doba provádění.

Řešením je ukládání cookies do souboru. Later, načtěte hodnoty cookie z tohoto souboru a přidejte do něj svou aktuální relaci prohlížeče. V důsledku toho můžete přeskočit přihlašovací kroky v každém Testovací případ protože vaše relace ovladače obsahuje tyto informace.

Aplikační server nyní považuje vaši relaci prohlížeče za ověřenou a přímo vás přesměruje na požadovanou adresu URL.

Jak zacházet s cookies v Selenium

Budeme používat https://demo.guru99.com/test/cookie/selenium_aut.php pro naše demo účely.

Toto bude proces ve 2 krocích.

Krok 1) Přihlaste se do aplikace a uložte vygenerovaný ověřovací soubor cookie.

Zpracovat soubory cookie v Selenium

Krok 2) Použil uložený soubor cookie k opětovnému přihlášení do aplikace bez použití uživatelského jména a hesla.

Krok 1) Uložení informací o souborech cookie

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

Vysvětlení kódu:

  • Vytvořte instanci WebDriver
  • Web navštěvujeme pomocí driver.get (“https://demo.guru99.com/test/cookie/selenium_aut.php”)
  • Přihlaste se do Aplikace
  • Přečtěte si informace o souborech cookie pomocí
    driver.manage().getCookies();
  • Ukládejte informace o souborech cookie pomocí třídy FileWriter pro zápis proudů znaků a BufferedWriter pro zápis textu do souboru pro vytvoření souboru Cookies.data
  • Soubor „Cookies.data“ ukládá všechny informace o souborech cookie spolu s „Název, Hodnota, Doména, Cesta“. Tyto informace můžeme načíst a přihlásit se do aplikace bez zadání přihlašovacích údajů.
  • Jakmile spustíte výše uvedený kód, vytvoří se soubor Cookie.data do struktury složek projektu, jak je znázorněno na obrazovce níže. Otevřete soubor Cookie.data, uvidíte, že přihlašovací údaje AUT jsou uloženy ve formátu Cookie, viz níže zvýrazněná obrazovka

    Zpracovat soubory cookie v Selenium

Krok 2) Použití uloženého cookie k přihlášení do aplikace

Nyní přistoupíme k souboru cookie vygenerovanému v kroku 1 a vygenerovaný soubor cookie použijeme k ověření naší relace v aplikaci

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ýstup: Budete přesměrováni přímo na obrazovku úspěšného přihlášení bez zadání vstupního uživatelského jména a hesla

POZNÁMKA: Použijte tvrdé obnovení v případě, že po provedení výše uvedeného skriptu uvidíte přihlašovací stránku.

Proč investovat do čističky vzduchu?

Můžete se tak vyhnout zadávání uživatelského jména a hesla na serveru a jejich ověřování znovu a znovu pro každý test pomocí Selenium Webdriver, a tím ušetří spoustu času.