Jak zacházet s cookies v Selenium webový ovladač
HTTP cookie 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ý z webové aplikace a uložený ve webovém prohlížeči, zatímco uživatel prohlíží daný web.
Kliknutím sem získáte další informace testování cookies.
Selenium Příkazy dotazu na soubory cookie
In Selenium Webdriver, můžeme se dotazovat a interagovat s cookies pomocí níže vestavěné metody:
Selenium Příkazy dotazu | Výstup |
---|---|
driver.manage().getCookies(); |
Vrátit seznam všech souborů cookie |
driver.manage().getCookieNamed(arg0); |
Vraťte konkrétní cookie podle názvu |
driver.manage().addCookie(arg0); |
Vytvořte a přidejte cookie |
driver.manage().deleteCookie(arg0); |
Smazat konkrétní cookie |
driver.manage().deleteCookieNamed(arg0); |
Smazat konkrétní cookie podle názvu |
driver.manage().deleteAllCookies(); |
Smažte všechny soubory cookie |
Proč zpracovávat (přijímat) soubory cookie v Selenium?
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.
Kdy Testování webovou aplikaci využívající selenový webový ovladač, možná budete muset vytvořit, aktualizovat nebo odstranit soubor cookie.
Například při automatizaci aplikace pro nakupování online potřebujete zautomatizovat 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 před provedením výše uvedených testovacích scénářů pokaždé provést přihlašovací akci. Tím se zvýší vaše úsilí při kódování a doba provádění.
Řešením je ukládání cookies do souboru. Later, načtěte hodnoty cookie z tohoto souboru a přidejte do něj svou aktuální relaci prohlížeče. V důsledku toho můžete přeskočit přihlašovací kroky v každém Testovací 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.
Jak zacházet s cookies v Selenium
Budeme používat https://demo.guru99.com/test/cookie/selenium_aut.php pro naše demo účely.
Toto bude proces ve 2 krocích.
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) Uložení informací o souborech cookie
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(); } } }
Vysvětlení kódu:
- Vytvořte instanci WebDriver
- Web navštěvujeme pomocí driver.get (“https://demo.guru99.com/test/cookie/selenium_aut.php”)
- Přihlaste se do Aplikace
- Přečtěte si informace o souborech cookie 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í souboru Cookies.data
- Soubor „Cookies.data“ ukládá všechny informace o souborech cookie spolu s „Název, Hodnota, Doména, Cesta“. Tyto informace můžeme načíst a přihlásit se do aplikace bez zadání přihlašovacích údajů.
- Jakmile spustíte výše uvedený kód, vytvoří se soubor Cookie.data do struktury složek projektu, jak je znázorněno na obrazovce níže. 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 cookie k přihlášení do aplikace
Nyní přistoupíme k souboru cookie vygenerovanému v kroku 1 a vygenerovaný soubor cookie použijeme k ověření naší relace v aplikaci
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"); } }
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 tvrdé obnovení v případě, že po provedení výše uvedeného skriptu uvidíte přihlašovací stránku.
Proč investovat do čističky vzduchu?
Můžete se tak vyhnout zadávání uživatelského jména a hesla na serveru a jejich ověřování znovu a znovu pro každý test pomocí Selenium Webdriver, a tím ušetří spoustu času.