A HTTP cookie a felhasználóval és a preferenciáikkal kapcsolatos információkból áll. Az információkat kulcs-érték pár segítségével tárolja. Ez egy kis adat, amelyet a Webalkalmazás küld, és a Webböngészőben tárolódik, miközben a felhasználó az adott webhelyet böngészi.
Kattintson ide a sütik teszteléséről.
Ebben az oktatóanyagban megtanuljuk -
- Szelén lekérdezési parancsok a sütikhez
- Miért kezeljük a szelén sütiket?
- Bemutató: Cookie kezelés a szelénben.
- 1. lépés: Cookie-információk tárolása.
- 2. lépés: Tárolt süti használata az alkalmazásba történő bejelentkezéshez.
Szelén lekérdezési parancsok a sütikhez
A Selenium Webdriver alkalmazásban az alábbi beépített módszerrel tudunk lekérdezni és együttműködni a sütikkel:
driver.manage (). getCookies (); // Vissza az összes sütik listájátdriver.manage (). getCookieNamed (arg0); // Adott cookie visszaadása név szerintdriver.manage (). addCookie (arg0); // Létrehozza és hozzáadja a sütitdriver.manage (). deleteCookie (arg0); // Adott cookie törlésedriver.manage (). deleteCookieNamed (arg0); // Adott cookie törlése a Név szerintdriver.manage (). deleteAllCookies (); // Az összes cookie törlése
Miért kezeljük a szelén sütiket?
Minden sütihez tartozik egy név, érték, domain, elérési út, lejárat és annak állapota, hogy biztonságos-e vagy sem. Az ügyfél validálása érdekében a szerver ezeket az értékeket elemzi egy cookie-ban.
Ha webes alkalmazást tesztel szelén web-illesztőprogram segítségével, akkor lehet, hogy létre kell hoznia, frissítenie vagy törölnie kell egy cookie-t.
Például az Online Shopping Application automatizálásakor sokaknak automatizálnia kell a tesztelési szcenáriókat, mint például a megrendelés, a Kosár megtekintése, Fizetési információk, a megrendelés visszaigazolása stb.
Ha a cookie-k nincsenek tárolva, akkor a fent felsorolt teszthelyzetek végrehajtása előtt minden alkalommal be kell lépnie a bejelentkezési művelettel. Ez növeli a kódolási erőfeszítéseket és a végrehajtási időt.
A megoldás az, hogy a cookie-kat egy File-ban tároljuk. Később töltse le a cookie értékeit erről a fájlról, és adja hozzá a jelenlegi böngésző munkamenetét. Ennek eredményeként minden tesztesetben kihagyhatja a bejelentkezési lépéseket, mert az illesztőprogram munkamenetében vannak ezek az információk.
Az alkalmazásszerver mostantól hitelesítettként kezeli a böngésző munkamenetét, és közvetlenül a kért URL-re vezeti.
Bemutató: Cookie kezelés a szelénben.
Bemutató célunkra a http://demo.guru99.com/test/cookie/selenium_aut.php fájlt fogjuk használni.
Ez egy kétlépcsős folyamat lesz.
1. lépés: Jelentkezzen be az alkalmazásba, és tárolja a létrehozott hitelesítési sütit.
2. lépés: A tárolt süti segítségével újból bejelentkezett az alkalmazásba felhasználói azonosító és jelszó használata nélkül.
1. lépés: Cookie-információk tárolása.
csomag 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 [] érvel){WebDriver illesztőprogram;System.setProperty ("webdriver.chrome.driver", "G: ///chromedriver.exe");illesztőprogram = new ChromeDriver ();driver.get ("http://demo.guru99.com/test/cookie/selenium_aut.php");// Adja meg az e-mail azonosítót és a jelszót, ha már regisztráldriver.findElement (By.name ("felhasználónév")). sendKeys ("abc123");driver.findElement (By.name ("jelszó")). sendKeys ("123xyz");driver.findElement (By.name ("beküldés")). kattintson ();// a Sütik nevű fájl létrehozása a bejelentkezési adatok tárolásáhozFájlfájl = új Fájl ("Cookies.data");próbáld ki{// Törölje a régi fájlt, ha létezikfile.delete ();file.createNewFile ();FileWriter fileWrite = új FileWriter (fájl);BufferedWriter Bwrite = új BufferedWriter (fileWrite);// ciklus a cookie-információk megszerzéséhez// ciklus a cookie-információk megszerzéséhezfor (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 ();}fogás (ex kivétel){ex.printStackTrace ();}}}
Kód Magyarázat:
- Hozzon létre WebDriver példányt
- A driver.get ("http://demo.guru99.com/test/cookie/selenium_aut.php") segítségével látogatjuk meg a weboldalt.
- Jelentkezzen be az alkalmazásba
- Olvassa el a sütivel kapcsolatos információkat
driver.manage (). getCookies ();
- Tárolja a cookie-információkat a FileWriter Class használatával karakterfolyamok írására, a BufferedWriter pedig a szöveg beírására egy fájlba, hogy a fájlba létrehozza.
- A "Cookies.data" fájl az összes cookie-információt a "Név, Érték, Tartomány, Útvonal" mellett tárolja. A bejelentkezési adatok megadása nélkül visszakereshetjük ezeket az információkat, és bejelentkezhetünk az alkalmazásba.
- Miután a fenti kódot futtatta, a Cookie.data fájl létrejön a projekt mappaszerkezetében, 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 a Cookie formátumban vannak mentve, lásd az alább kiemelt képernyőt
2. lépés: Tárolt süti használata az alkalmazásba történő bejelentkezéshez.
Most hozzáférünk az 1. lépésben létrehozott cookie-hoz, és a létrehozott cookie segítségével hitelesítjük munkamenetünket az alkalmazásban
csomag 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 [] érvel) {WebDriver illesztőprogram;System.setProperty ("webdriver.chrome.driver", "G: //chromedriver.exe");illesztőprogram = new ChromeDriver ();próbáld ki{Fájlfájl = új Fájl ("Cookies.data");FileReader fileReader = új FileReader (fájl);BufferedReader Buffreader = új BufferedReader (fileReader);Húr vonalas;while ((strline = Buffreader.readLine ())! = null) {StringTokenizer token = új StringTokenizer (strline, ";");while (token.hasMoreTokens ()) {Karakterlánc neve = token.nextToken ();Karakterlánc értéke = token.nextToken ();Karakterlánc tartomány = token.nextToken ();Karakterlánc útvonala = token.nextToken ();Dátum lejárati ideje = null;String val;if (! (val = token.nextToken ()). egyenlő ("null")){lejárat = új Dátum (val);}Logikai isSecure = új logikai érték (token.nextToken ()).booleanValue ();Cookie ck = új Cookie (név, érték, domain, elérési út, lejárat, isSecure);System.out.println (ck);driver.manage (). addCookie (ck); // Ez hozzáadja a tárolt cookie-t az aktuális munkamenethez}}} fogás (ex kivétel ex) {ex.printStackTrace ();}driver.get ("http://demo.guru99.com/test/cookie/selenium_aut.php");}}
KIMENET: A beviteli felhasználói azonosító és jelszó megadása nélkül közvetlenül a sikeres bejelentkezési képernyőre kerül
MEGJEGYZÉS: Használjon kemény frissítést arra az esetre, ha a fenti parancsfájl végrehajtása után megjelenik a bejelentkezési oldal.
Következtetés
Így elkerülheti a felhasználónév és jelszó megadását a szerveren, és ezeket minden egyes tesztnél újra és újra érvényesítheti a Selenium Webdriver segítségével, ezáltal sok időt takaríthat meg.
Ez a cikk Mangesh Waghmare közreműködésével készült