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.
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
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.
Összegzé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.


