Cookie-k kezelése a szelén WebDriver programban

Tartalomjegyzék:

Anonim

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