Kuinka käsitellä evästeitä Selenium web-ajuri

HTTP-eväste sisältää tietoja käyttäjästä ja hänen mieltymyksistään. Se tallentaa tiedot käyttämällä avain-arvo-paria. Se on pieni osa dataa, joka lähetetään Web-sovelluksesta ja tallennetaan verkkoselaimeen käyttäjän selattaessa kyseistä verkkosivustoa.

Napsauta tästä saadaksesi lisätietoja evästeiden testaus.

Selenium Kysely komennot evästeille

In Selenium Webdriver, voimme kysyä evästeitä ja olla vuorovaikutuksessa niiden kanssa alla olevalla sisäänrakennetulla menetelmällä:

Selenium Kyselykomennot ulostulo
driver.manage().getCookies(); Palauta luettelo kaikista evästeistä
driver.manage().getCookieNamed(arg0); Palauta tietty eväste nimen mukaan
driver.manage().addCookie(arg0); Luo ja lisää eväste
driver.manage().deleteCookie(arg0); Poista tietty eväste
driver.manage().deleteCookieNamed(arg0); Poista tietty eväste nimen mukaan
driver.manage().deleteAllCookies(); Poista kaikki evästeet

Miksi käsitellä (hyväksyä) evästeitä Selenium?

Jokainen eväste liittyy nimeen, arvoon, verkkotunnukseen, polkuun, vanhenemiseen ja sen tilaan, onko se suojattu vai ei. Asiakkaan validoimiseksi palvelin jäsentää kaikki nämä arvot evästeessä.

Kun Testaus Seleeni-verkkoohjainta käyttävä verkkosovellus, saatat joutua luomaan, päivittämään tai poistamaan evästeen.

Esimerkiksi kun automatisoitat verkkokauppasovellusta, monien on automatisoitava testiskenaariot, kuten tilaus, Näytä ostoskori, Maksutiedot, tilausvahvistus jne.

Jos evästeitä ei tallenneta, sinun on suoritettava kirjautuminen joka kerta ennen kuin suoritat yllä luetellut testiskenaariot. Tämä lisää koodaustyötäsi ja suoritusaikaasi.

Ratkaisu on tallentaa evästeet tiedostoon. Later, noutaa evästeen arvot tästä tiedostosta ja lisää siihen nykyinen selainistuntosi. Tämän seurauksena voit ohittaa kirjautumisvaiheet jokaisessa Testitapaus koska kuljettajaistunnossasi on nämä tiedot.

Sovelluspalvelin käsittelee nyt selainistuntoa todennettuna ja vie sinut suoraan pyytämäsi URL-osoitteeseen.

Kuinka käsitellä evästeitä Selenium

Käytämme https://demo.guru99.com/test/cookie/selenium_aut.php demo tarkoitukseemme.

Tämä on 2-vaiheinen prosessi.

Vaihe 1) Kirjaudu sisään sovellukseen ja tallenna luotu todennuseväste.

Käsittele evästeitä Selenium

Vaihe 2) Käytti tallennettua evästettä kirjautuakseen uudelleen sovellukseen ilman käyttäjätunnusta ja salasanaa.

Vaihe 1) Evästetietojen tallentaminen

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

Koodin selitys:

  • Luo WebDriver-esiintymä
  • Vierailemme verkkosivustolla käyttämällä driver.get(“https://demo.guru99.com/test/cookie/selenium_aut.php”)
  • Kirjaudu sisään Sovellukseen
  • Lue evästetiedot käyttämällä
    driver.manage().getCookies();
  • Tallenna evästetiedot käyttämällä FileWriter Classia merkkivirtojen kirjoittamiseen ja BufferedWriter kirjoittaa tekstiä tiedostoon, joka luodaan tiedostoksi Cookies.data
  • "Cookies.data" -tiedosto tallentaa kaikki evästetiedot sekä "Nimi, arvo, verkkotunnus, polku". Voimme hakea nämä tiedot ja kirjautua sisään sovellukseen syöttämättä kirjautumistietoja.
  • Kun suoritat yllä olevan koodin, Cookie.data-tiedosto luodaan projektin kansiorakenteeseen alla olevan näytön mukaisesti. Avaa Cookie.data-tiedosto, näet, että AUT:n kirjautumistiedot on tallennettu evästemuotoon, katso alla oleva korostettu näyttö

    Käsittele evästeitä Selenium

Vaihe 2) Tallennetun evästeen käyttö sovellukseen kirjautumiseen

Nyt pääsemme vaiheessa 1 luotuun evästeeseen ja käytämme luotua evästettä istuntomme todentamiseen sovelluksessa

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

lähtö: Sinut viedään suoraan sisäänkirjautumisen onnistumisnäyttöön syöttämättä käyttäjätunnusta ja salasanaa

HUOMAUTUS: Käytä kovaa päivitystä, jos näet kirjautumissivun yllä olevan komentosarjan suorittamisen jälkeen.

Yhteenveto

Näin voit välttää käyttäjänimen ja salasanan syöttämisen palvelimelle vahvistamasta niitä uudelleen ja uudelleen jokaisessa testissä Selenium Webdriver ja säästää siten paljon aikaa.