HTTP slapuką sudaro informacija apie vartotoją ir jo nuostatas. Ji kaupia informaciją naudodama raktų ir verčių porą. Tai nedidelis duomenų gabalas, siunčiamas iš žiniatinklio programos ir saugomas žiniatinklio naršyklėje, kol vartotojas naršo toje svetainėje.
Norėdami sužinoti apie slapukų testavimą, spustelėkite čia.
Šioje pamokoje sužinosime -
- „Selenium Query“ komandos, skirtos slapukams
- Kodėl reikia tvarkyti slapukus selenyje?
- Demonstracija: slapukų tvarkymas selenyje.
- 1 veiksmas) Informacijos apie slapukus išsaugojimas.
- 2 žingsnis) Naudokite saugomą slapuką prisijungdami prie programos.
„Selenium Query“ komandos, skirtos slapukams
„Selenium“ žiniatinklio tvarkyklėje galime pateikti užklausas ir sąveikauti su slapukais naudodami žemiau integruotą metodą:
vairuotojas.tvarkyti (). getCookies (); // Grąžinti visų slapukų sąrašąvairuotojas.tvarkyti (). getCookieNamed (arg0); // Grąžinkite konkretų slapuką pagal pavadinimąvairuotojas.tvarkyti (). addCookie (arg0); // Sukurkite ir pridėkite slapukąvairuotojas.tvarkyti (). deleteCookie (arg0); // Ištrinti konkretų slapukąvairuotojas.tvarkyti (). deleteCookieNamed (arg0); // Ištrinti konkretų slapuką pagal pavadinimąvairuotojas.tvarkyti (). deleteAllCookies (); // Ištrinti visus slapukus
Kodėl reikia tvarkyti slapukus selenyje?
Kiekvienas slapukas yra susietas su pavadinimu, verte, domenu, keliu, galiojimo pabaigos data ir būsena, ar jis saugus. Norėdami patvirtinti klientą, serveris visas šias reikšmes analizuoja slapuke.
Bandant žiniatinklio programą naudojant seleno žiniatinklio tvarkyklę, gali tekti sukurti, atnaujinti arba ištrinti slapuką.
Pvz., Automatizuojant internetinės apsipirkimo programą, jums reikia automatizuoti bandymo scenarijus, pvz., Vietos užsakymą, Peržiūrėti krepšelį, Mokėjimo informaciją, užsakymo patvirtinimą ir kt.
Jei slapukai nėra saugomi, turėsite atlikti prisijungimo veiksmus kiekvieną kartą prieš vykdydami aukščiau išvardytus bandymo scenarijus. Tai padidins jūsų kodavimo pastangas ir vykdymo laiką.
Sprendimas yra išsaugoti slapukus faile. Vėliau iš šio failo gaukite slapuko reikšmes ir pridėkite prie jo dabartinę naršyklės sesiją. Todėl galite praleisti prisijungimo veiksmus kiekvienoje bandymo byloje, nes jūsų vairuotojo sesijoje yra ši informacija.
Programų serveris dabar jūsų naršyklės seansą laiko autentišku ir tiesiogiai nukreipia jus į jūsų prašomą URL.
Demonstracija: slapukų tvarkymas selenyje.
Demo tikslui naudosime http://demo.guru99.com/test/cookie/selenium_aut.php.
Tai bus dviejų pakopų procesas.
1 žingsnis) Prisijunkite prie programos ir saugokite sugeneruotą autentifikavimo slapuką.
2 žingsnis) Naudodamas išsaugotą slapuką, norėdamas vėl prisijungti prie programos nenaudodamas vartotojo ID ir slaptažodžio.
1 veiksmas) Informacijos apie slapukus išsaugojimas.
paketas CookieExample;importuoti java.io.BufferedWriter;importuoti java.io.File;importuoti java.io.FileWriter;importuoti java.util.Set;importuoti org.openqa.selenium.By;importuoti org.openqa.selenium.WebDriver;importuoti org.openqa.selenium.chrome.ChromeDriver;importuoti org.openqa.selenium.Cookie;viešosios klasės slapukasRead {public static void main (String [] argumentai){„WebDriver“ tvarkyklė;System.setProperty ("webdriver.chrome.driver", "G: ///chromedriver.exe");tvarkyklė = naujas „ChromeDriver“ ();driver.get ("http://demo.guru99.com/test/cookie/selenium_aut.php");// Įveskite el. Pašto adresą ir slaptažodį, jei jau esate registruotasdriver.findElement (By.name ("vartotojo vardas")). sendKeys ("abc123");driver.findElement (By.name ("slaptažodis")). sendKeys ("123xyz");driver.findElement (By.name ("pateikti")). spustelėkite ();// sukurkite failą pavadinimu „Slapukai“, kad išsaugotumėte prisijungimo informacijąFailo failas = naujas failas („Slapukai.duomenys“);bandyti{// Ištrinti seną failą, jei yrafile.delete ();file.createNewFile ();FileWriter fileWrite = naujas FileWriter (failas);„BufferedWriter Bwrite“ = naujas „BufferedWriter“ (fileWrite);// kilpa informacijai apie slapukus gauti// kilpa informacijai apie slapukus gautiskirta (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 ();}sugavimas (ex išimtis){ex.printStackTrace ();}}}
Kodo paaiškinimas:
- Sukurkite „WebDriver“ egzempliorių
- Mes apsilankome svetainėje naudodami driver.get ("http://demo.guru99.com/test/cookie/selenium_aut.php")
- Prisijunkite prie programos
- Perskaitykite informaciją apie slapukus naudodami
vairuotojas.tvarkyti (). getCookies ();
- Saugokite slapukų informaciją naudodami „FileWriter Class“ rašydami simbolių srautus, o „BufferedWriter“ - įrašydami tekstą į failą, kad sukurtumėte į failą „Cookies.data
- „Cookies.data“ faile saugoma visa slapukų informacija kartu su pavadinimu, verte, domenu, keliu. Šią informaciją galime gauti ir prisijungti prie programos neįvedę prisijungimo duomenų.
- Kai paleisite aukščiau nurodytą kodą, failas Cookie.data bus sukurtas į projekto aplanko struktūrą, kaip parodyta žemiau esančiame ekrane. Atidarykite „Cookie.data“ failą. Galite pamatyti, kad AUT prisijungimo duomenys yra išsaugoti slapuko formatu, žr. Žemiau paryškintą ekraną
2 žingsnis) Naudokite saugomą slapuką prisijungdami prie programos.
Dabar mes pasieksime 1 veiksme sugeneruotą slapuką ir naudosime sukurtą slapuką, kad patvirtintume mūsų seansą programoje
paketas CookieExample;importuoti java.io.BufferedReader;importuoti java.io.File;importuoti java.io.FileReader;importuoti java.util.Date;importuoti java.util.StringTokenizer;importuoti org.openqa.selenium.Cookie;importuoti org.openqa.selenium.WebDriver;importuoti org.openqa.selenium.chrome.ChromeDriver;viešosios klasės „CookieWrite“{public static void main (String [] argumentuoja) {„WebDriver“ tvarkyklė;System.setProperty ("webdriver.chrome.driver", "G: //chromedriver.exe");tvarkyklė = naujas „ChromeDriver“ ();bandyti{Failo failas = naujas failas („Slapukai.duomenys“);FileReader fileReader = naujas FileReader (failas);BufferedReader Buffreader = naujas BufferedReader (fileReader);Styginių linija;while ((strline = Buffreader.readLine ())! = null) {„StringTokenizer“ žetonas = naujas „StringTokenizer“ (strline, ";");while (žetonas.hasMoreTokens ()) {Eilutės pavadinimas = token.nextToken ();Stygos reikšmė = token.nextToken ();Eilučių domenas = token.nextToken ();Stygos kelias = token.nextToken ();Datos galiojimo laikas = niekinis;Styginių val;jei (! (val = token.nextToken ()). lygu ("null")){galiojimo laikas = nauja Data (val);}Boolean isSecure = naujas Boolean (token.nextToken ()).booleanValue ();Slapukas ck = naujas slapukas (vardas, vertė, domenas, kelias, galiojimo laikas, isSecure);System.out.println (ck);vairuotojas.tvarkyti (). addCookie (ck); // Tai pridės išsaugotą slapuką prie jūsų dabartinės sesijos}}} sugavimas (ex išimtis) {ex.printStackTrace ();}driver.get ("http://demo.guru99.com/test/cookie/selenium_aut.php");}}
IŠĖJIMAS: Jūs pateksite tiesiai į prisijungimo sėkmės ekraną, neįvedę įvesto vartotojo ID ir slaptažodžio
PASTABA: naudokite „hard refresh“, jei pamatysite prisijungimo puslapį atlikę aukščiau pateiktą scenarijų.
Išvada
Taigi, naudodamiesi „Selenium Webdriver“, galite išvengti serverio įvesti vartotojo vardą ir slaptažodį, patvirtindami juos vėl ir vėl kiekvienam bandymui, ir taip sutaupysite daug laiko.
Prie šio straipsnio prisidėjo Mangeshas Waghmare'as