Kuinka käsitellä evästeitä Selenium web-ajuri
HTTP-eväste sisältää tietoja käyttäjästä ja hänen mieltymyksistään. Se tallentaa tiedot käyttämällä avain-arvo-paria. Se on pieni osa dataa, joka lähetetään Web-sovelluksesta ja tallennetaan verkkoselaimeen käyttäjän selattaessa kyseistä verkkosivustoa.
Napsauta tästä saadaksesi lisätietoja evästeiden testaus.
Selenium Kysely komennot evästeille
In Selenium Webdriver, voimme kysyä evästeitä ja olla vuorovaikutuksessa niiden kanssa alla olevalla sisäänrakennetulla menetelmällä:
Selenium Kyselykomennot | ulostulo |
---|---|
driver.manage().getCookies(); |
Palauta luettelo kaikista evästeistä |
driver.manage().getCookieNamed(arg0); |
Palauta tietty eväste nimen mukaan |
driver.manage().addCookie(arg0); |
Luo ja lisää eväste |
driver.manage().deleteCookie(arg0); |
Poista tietty eväste |
driver.manage().deleteCookieNamed(arg0); |
Poista tietty eväste nimen mukaan |
driver.manage().deleteAllCookies(); |
Poista kaikki evästeet |
Miksi käsitellä (hyväksyä) evästeitä Selenium?
Jokainen eväste liittyy nimeen, arvoon, verkkotunnukseen, polkuun, vanhenemiseen ja sen tilaan, onko se suojattu vai ei. Asiakkaan validoimiseksi palvelin jäsentää kaikki nämä arvot evästeessä.
Kun Testaus Seleeni-verkkoohjainta käyttävä verkkosovellus, saatat joutua luomaan, päivittämään tai poistamaan evästeen.
Esimerkiksi kun automatisoitat verkkokauppasovellusta, monien on automatisoitava testiskenaariot, kuten tilaus, Näytä ostoskori, Maksutiedot, tilausvahvistus jne.
Jos evästeitä ei tallenneta, sinun on suoritettava kirjautuminen joka kerta ennen kuin suoritat yllä luetellut testiskenaariot. Tämä lisää koodaustyötäsi ja suoritusaikaasi.
Ratkaisu on tallentaa evästeet tiedostoon. Later, noutaa evästeen arvot tästä tiedostosta ja lisää siihen nykyinen selainistuntosi. Tämän seurauksena voit ohittaa kirjautumisvaiheet jokaisessa Testitapaus koska kuljettajaistunnossasi on nämä tiedot.
Sovelluspalvelin käsittelee nyt selainistuntoa todennettuna ja vie sinut suoraan pyytämäsi URL-osoitteeseen.
Kuinka käsitellä evästeitä Selenium
Käytämme https://demo.guru99.com/test/cookie/selenium_aut.php demo tarkoitukseemme.
Tämä on 2-vaiheinen prosessi.
Vaihe 1) Kirjaudu sisään sovellukseen ja tallenna luotu todennuseväste.
Vaihe 2) Käytti tallennettua evästettä kirjautuakseen uudelleen sovellukseen ilman käyttäjätunnusta ja salasanaa.
Vaihe 1) Evästetietojen tallentaminen
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(); } } }
Koodin selitys:
- Luo WebDriver-esiintymä
- Vierailemme verkkosivustolla käyttämällä driver.get(“https://demo.guru99.com/test/cookie/selenium_aut.php”)
- Kirjaudu sisään Sovellukseen
- Lue evästetiedot käyttämällä
driver.manage().getCookies();
- Tallenna evästetiedot käyttämällä FileWriter Classia merkkivirtojen kirjoittamiseen ja BufferedWriter kirjoittaa tekstiä tiedostoon, joka luodaan tiedostoksi Cookies.data
- "Cookies.data" -tiedosto tallentaa kaikki evästetiedot sekä "Nimi, arvo, verkkotunnus, polku". Voimme hakea nämä tiedot ja kirjautua sisään sovellukseen syöttämättä kirjautumistietoja.
- Kun suoritat yllä olevan koodin, Cookie.data-tiedosto luodaan projektin kansiorakenteeseen alla olevan näytön mukaisesti. Avaa Cookie.data-tiedosto, näet, että AUT:n kirjautumistiedot on tallennettu evästemuotoon, katso alla oleva korostettu näyttö
Vaihe 2) Tallennetun evästeen käyttö sovellukseen kirjautumiseen
Nyt pääsemme vaiheessa 1 luotuun evästeeseen ja käytämme luotua evästettä istuntomme todentamiseen sovelluksessa
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"); } }
lähtö: Sinut viedään suoraan sisäänkirjautumisen onnistumisnäyttöön syöttämättä käyttäjätunnusta ja salasanaa
HUOMAUTUS: Käytä kovaa päivitystä, jos näet kirjautumissivun yllä olevan komentosarjan suorittamisen jälkeen.
Yhteenveto
Näin voit välttää käyttäjänimen ja salasanan syöttämisen palvelimelle vahvistamasta niitä uudelleen ja uudelleen jokaisessa testissä Selenium Webdriver ja säästää siten paljon aikaa.