Zpracování souborů cookie v selenu WebDriver

Soubor cookie HTTP 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ých z webové aplikace a uložených ve webovém prohlížeči, zatímco uživatel tento web prohlíží.

Kliknutím sem se dozvíte o testování souborů cookie.

V tomto tutoriálu se naučíme -

  • Příkazy Selen Query pro cookies
  • Proč zacházet s cookies na selenu?
  • Demo: Zpracování souborů cookie v selenu.
  • Krok 1) Ukládání informací o cookies.
  • Krok 2) Použití uloženého souboru cookie k přihlášení do aplikace.

Příkazy Selen Query pro cookies

V Selenium Webdriver můžeme dotazovat a pracovat s cookies pomocí níže zabudované metody:

driver.manage (). getCookies (); // Vrátí seznam všech souborů cookiedriver.manage (). getCookieNamed (arg0); // Vrátí konkrétní cookie podle jménadriver.manage (). addCookie (arg0); // Vytvořte a přidejte cookiedriver.manage (). deleteCookie (arg0); // Smazat konkrétní cookiedriver.manage (). deleteCookieNamed (arg0); // Odstranit konkrétní cookie podle názvudriver.manage (). deleteAllCookies (); // Smazat všechny cookies

Proč zacházet s cookies na selenu?

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.

Při testování webové aplikace pomocí selenového webového ovladače může být nutné vytvořit, aktualizovat nebo odstranit soubor cookie.

Například při automatizaci aplikace pro online nakupování potřebujete mnoho automatizovat 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 provést přihlašovací akci pokaždé, než provedete výše uvedené testovací scénáře. Tím se zvýší vaše úsilí o kódování a doba provádění.

Řešením je ukládání souborů cookie do souboru. Později načtěte hodnoty souboru cookie z tohoto souboru a přidejte do něj svou aktuální relaci prohlížeče. Ve výsledku můžete přeskočit kroky přihlášení v každém testovacím 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.

Demo: Zpracování souborů cookie v selenu.

Pro náš demo účel použijeme http://demo.guru99.com/test/cookie/selenium_aut.php.

Bude to dvoufázový proces.

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

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) Ukládání informací o cookies.

balíček 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;veřejná třída cookieRead {public static void main (String [] args){Ovladač WebDriver;System.setProperty ("webdriver.chrome.driver", "G: ///chromedriver.exe");driver = new ChromeDriver ();driver.get ("http://demo.guru99.com/test/cookie/selenium_aut.php");// Zadejte e-mail a heslo, pokud jste již zaregistrovánidriver.findElement (By.name ("username")). sendKeys ("abc123");driver.findElement (By.name ("heslo")). sendKeys ("123xyz");driver.findElement (By.name ("submit")). click ();// vytvoření souboru s názvem Cookies pro uložení přihlašovacích údajůSoubor soubor = nový soubor ("Cookies.data");Snaž se{// Odstranit starý soubor, pokud existujefile.delete ();file.createNewFile ();FileWriter fileWrite = nový FileWriter (soubor);BufferedWriter Bwrite = nový BufferedWriter (fileWrite);// smyčka pro získání informací o cookies// smyčka pro získání informací o cookiespro (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 ();}úlovek (výjimka mimo){např. printStackTrace ();}}}

Vysvětlení kódu:

  • Vytvořte instanci WebDriver
  • Web navštěvujeme pomocí souboru driver.get ("http://demo.guru99.com/test/cookie/selenium_aut.php")
  • Přihlaste se do aplikace
  • Přečtěte si informace o cookies 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í do souboru Cookies.data
  • Soubor „Cookies.data“ ukládá všechny informace o cookies spolu s „názvem, hodnotou, doménou, cestou“. Tyto informace můžeme načíst a přihlásit se do aplikace bez zadání přihlašovacích údajů.
  • Po spuštění nad kódem se soubor Cookie.data vytvoří do struktury složek projektu, jak je znázorněno na níže uvedené obrazovce. 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

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

Nyní přistoupíme k souboru cookie vygenerovanému v kroku 1 a pomocí souboru cookie vygenerovaného k ověření naší relace v aplikaci

balíček CookieExample;importovat 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;veřejná třída CookieWrite{public static void main (String [] args) {Ovladač WebDriver;System.setProperty ("webdriver.chrome.driver", "G: //chromedriver.exe");driver = new ChromeDriver ();Snaž se{Soubor soubor = nový soubor ("Cookies.data");FileReader fileReader = nový FileReader (soubor);BufferedReader Buffreader = nový BufferedReader (fileReader);String strline;while ((strline = Buffreader.readLine ())! = null) {Token StringTokenizer = nový StringTokenizer (strline, ";");while (token.hasMoreTokens ()) {Název řetězce = token.nextToken ();Hodnota řetězce = token.nextToken ();Řetězcová doména = token.nextToken ();Řetězcová cesta = token.nextToken ();Datum vypršení platnosti = null;Řetězec val;if (! (val = token.nextToken ()). equals ("null")){expirace = nové datum (val);}Boolean isSecure = new Boolean (token.nextToken ()).booleanValue ();Cookie ck = nový Cookie (jméno, hodnota, doména, cesta, konec platnosti, isSecure);System.out.println (ck);driver.manage (). addCookie (ck); // Tím přidáte uložený soubor cookie do vaší aktuální relace}}} chytit (výjimka výjimka) {např. printStackTrace ();}driver.get ("http://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 tvrdou aktualizaci, pokud se vám po spuštění výše uvedeného skriptu zobrazí přihlašovací stránka.

Závěr

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

K tomuto článku přispěl Mangesh Waghmare

Zajímavé články...