Spracovanie súborov cookie v serveri Selenium WebDriver

Obsah:

Anonim

Súbor cookie HTTP obsahuje informácie o používateľovi a jeho preferenciách. Ukladá informácie pomocou páru kľúč - hodnota. Je to malý údaj odoslaný z webovej aplikácie a uložený vo webovom prehliadači, zatiaľ čo používateľ tento web prehliada.

Kliknutím sem získate ďalšie informácie o testovaní súborov cookie.

V tomto výučbe sa naučíme -

  • Príkazy príkazu Selenium Query pre súbory cookie
  • Prečo narábať s cookies na seléne?
  • Demo: Spracovanie súborov cookie v seléne.
  • Krok 1) Uloženie informácií o súboroch cookie.
  • Krok 2) Používanie uloženého súboru cookie na prihlásenie do aplikácie.

Príkazy príkazu Selenium Query pre súbory cookie

V Selenium Webdriver môžeme dopytovať a interagovať s cookies pomocou nižšie zabudovanej metódy:

driver.manage (). getCookies (); // Vrátiť zoznam všetkých súborov cookiedriver.manage (). getCookieNamed (arg0); // Vráti konkrétny súbor cookie podľa názvudriver.manage (). addCookie (arg0); // Vytvorte a pridajte súbor cookiedriver.manage (). deleteCookie (arg0); // Odstrániť konkrétny súbor cookiedriver.manage (). deleteCookieNamed (arg0); // Odstrániť konkrétny súbor cookie podľa názvudriver.manage (). deleteAllCookies (); // Vymazať všetky cookies

Prečo narábať s cookies na seléne?

Ku každému súboru cookie je priradený názov, hodnota, doména, cesta, doba platnosti a stav, či je zabezpečený alebo nie. Na účely overenia totožnosti klienta server analyzuje všetky tieto hodnoty v súbore cookie.

Pri testovaní webovej aplikácie pomocou selenového webového ovládača bude pravdepodobne potrebné vytvoriť, aktualizovať alebo vymazať súbor cookie.

Napríklad pri automatizácii aplikácie na online nakupovanie musíte mnohí automatizovať testovacie scenáre, ako je zadanie objednávky, zobrazenie košíka, informácie o platbe, potvrdenie objednávky atď.

Ak súbory cookie nie sú uložené, pred vykonaním vyššie uvedených testovacích scenárov budete musieť vykonať akciu prihlásenia zakaždým. To zvýši vaše úsilie pri kódovaní a čas vykonania.

Riešením je ukladanie súborov cookie do súboru. Neskôr z tohto súboru načítajte hodnoty súborov cookie a pridajte do nich svoju aktuálnu reláciu prehliadača. Vo výsledku môžete preskočiť kroky prihlásenia v každom testovacom prípade, pretože vaša relácia vodiča obsahuje tieto informácie.

Aplikačný server teraz zaobchádza s vašou reláciou prehliadača ako s autentifikáciou a priamo vás zavedie na požadovanú adresu URL.

Demo: Spracovanie súborov cookie v seléne.

Na svoje demonštračné účely použijeme stránku http://demo.guru99.com/test/cookie/selenium_aut.php.

Bude to dvojstupňový proces.

Krok 1) Prihláste sa do aplikácie a uložte vygenerovaný overovací súbor cookie.

Krok 2) Použil sa uložený súbor cookie na opätovné prihlásenie do aplikácie bez použitia používateľského mena a hesla.

Krok 1) Uloženie informácií o súboroch cookie.

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;verejná trieda cookieRead {public static void main (reťazec [] args){Ovládač WebDriver;System.setProperty ("webdriver.chrome.driver", "G: ///chromedriver.exe");ovládač = nový ChromeDriver ();driver.get ("http://demo.guru99.com/test/cookie/selenium_aut.php");// Zadajte e-mailovú adresu a heslo, ak ste sa už zaregistrovalidriver.findElement (By.name ("meno používateľa")). sendKeys ("abc123");driver.findElement (By.name ("heslo")). sendKeys ("123xyz");driver.findElement (By.name ("submit")). click ();// vytvorí súbor s názvom Cookies na uloženie prihlasovacích informáciíFile file = nový súbor ("Cookies.data");skús{// Odstrániť starý súbor, ak existujefile.delete ();file.createNewFile ();FileWriter fileWrite = nový FileWriter (súbor);BufferedWriter Bwrite = nový BufferedWriter (fileWrite);// slučka na získanie informácií o súboroch cookie// slučka na získanie informácií o súboroch cookiepre (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 ();}úlovok (výnimka okrem){napr. printStackTrace ();}}}

Vysvetlenie kódu:

  • Vytvorte inštanciu WebDriver
  • Web navštevujeme pomocou súboru driver.get ("http://demo.guru99.com/test/cookie/selenium_aut.php")
  • Prihláste sa do aplikácie
  • Prečítajte si informácie o cookies pomocou
    driver.manage (). getCookies (); 
  • Ukladajte informácie o súboroch cookie pomocou triedy FileWriter na zápis prúdov znakov a programu BufferedWriter na zápis textu do súboru a jeho vytvorenie do súboru Cookies.data.
  • Súbor „Cookies.data“ ukladá všetky informácie o cookies spolu s „menom, hodnotou, doménou, cestou“. Tieto informácie môžeme načítať a prihlásiť sa do aplikácie bez zadania prihlasovacích údajov.
  • Po spustení vyššie uvedeného kódu sa súbor Cookie.data vytvorí do štruktúry priečinkov projektu, ako je znázornené na obrazovke nižšie. Otvorte súbor Cookie.data, uvidíte, že prihlasovacie údaje AUT sú uložené vo formáte Cookie, pozri nižšie zvýraznenú obrazovku

Krok 2) Používanie uloženého súboru cookie na prihlásenie do aplikácie.

Teraz vstúpime do súboru cookie vygenerovaného v kroku 1 a pomocou súboru cookie vygenerovaného na overenie našej relácie v aplikácii

balíček 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;verejná trieda CookieWrite{public static void main (String [] args) {Ovládač WebDriver;System.setProperty ("webdriver.chrome.driver", "G: //chromedriver.exe");ovládač = nový ChromeDriver ();skúsiť {File file = nový súbor ("Cookies.data");FileReader fileReader = nový FileReader (súbor);BufferedReader Buffreader = nový BufferedReader (fileReader);String strline;while ((strline = Buffreader.readLine ())! = null) {Token StringTokenizer = nový StringTokenizer (strline, ";");while (token.hasMoreTokens ()) {Názov reťazca = token.nextToken ();Hodnota reťazca = token.nextToken ();Reťazcová doména = token.nextToken ();Cesta reťazca = token.nextToken ();Dátum skončenia platnosti = null;Reťazec val;if (! (val = token.nextToken ()). equals ("null")){expirácia = nový Dátum (val);}Boolean isSecure = new Boolean (token.nextToken ()).booleanValue ();Cookie ck = nový Cookie (meno, hodnota, doména, cesta, expirácia, isSecure);System.out.println (ck);driver.manage (). addCookie (ck); // Týmto sa do vašej aktuálnej relácie pridá uložený súbor cookie}}} úlovok (výnimka okrem) {napr. printStackTrace ();}driver.get ("http://demo.guru99.com/test/cookie/selenium_aut.php");}}

VÝSTUP: Dostanete sa priamo na obrazovku úspešného prihlásenia bez zadania vstupného ID používateľa a hesla

POZNÁMKA: Tvrdé obnovenie použite v prípade, že sa vám po vykonaní vyššie uvedeného skriptu zobrazí prihlasovacia stránka.

Záver

Takto sa môžete vyhnúť zadaniu používateľského mena a hesla na serveri a opakovane ich overovať pre každý test pomocou servera Selenium Webdriver, čím ušetríte veľa času.

Do tohto článku prispel Mangesh Waghmare