Bruk av informasjonskapsler med Selen WebDriver i Java
1. Oversikt
I denne artikkelen tar vi en rask titt på hvordan du bruker informasjonskapsler med Selenium WebDriver i Java.
Vi snakker litt om noen brukstilfeller, og så hopper vi rett inn i koden.
2. Arbeide med informasjonskapsler
En daglig brukstilfelle for å manipulere informasjonskapsler er å fortsette økten vår mellom testene.
Et enda enklere scenario er når vi vil teste at vår backend setter informasjonskapsler riktig.
I de neste avsnittene vil vi kort snakke om håndtering av informasjonskapsler mens vi gir enkle kodeeksempler.
2.1. Oppsett
Vi må legge til selen-java-avhengighet i prosjektet vårt:
org.seleniumhq.selenium selen-java 3.14.0
La oss sette opp testklassen vår:
offentlig klasse SeleniumCookiesJUnitLiveTest {privat WebDriver-driver; private String navUrl; @Før offentlig ugyldig setUp () {Capabilities kapasiteter = DesiredCapabilities.firefox (); driver = ny FirefoxDriver (evner); navUrl = "//baeldung.com"; }}
2.2. Lesekaker
Deretter implementerer vi en enkel test for å verifisere at informasjonskapsler finnes i sjåføren vår etter at vi har navigert til en webside:
@Test offentlig ugyldig når Navigate_thenCookiesExist () {driver.navigate (). Til (navUrl); Sett informasjonskapsler = driver.manage (). GetCookies (); assertThat (informasjonskapsler, er (ikke (tom ()))); }
Ofte vil vi kanskje søke etter en bestemt informasjonskapsel:
@Test offentlig ugyldig nårNavigate_thenLpCookieIsHasCorrectValue () {driver.navigate (). Til (navUrl); Cookie lpCookie = driver.manage (). GetCookieNamed ("lp_120073"); assertThat (lpCookie.getValue (), containString ("www.baeldung.com")); }
2.3. Egenskaper for informasjonskapsler
En informasjonskapsel kan knyttes til et domene, ha en utløpsdato og mye mer.
La oss ta en titt på noen vanlige informasjonskapselegenskaper:
@Test offentlig ugyldig nårNavigate_thenLpCookieHasCorrectProps () {driver.navigate (). Til (navUrl); Cookie lpCookie = driver.manage (). GetCookieNamed ("lp_120073"); assertThat (lpCookie.getDomain (), equalTo (". baeldung.com")); assertThat (lpCookie.getPath (), equalTo ("/")); assertThat (lpCookie.getExpiry (), er (ikke (nullValue ()))); assertThat (lpCookie.isSecure (), equalTo (false)); assertThat (lpCookie.isHttpOnly (), equalTo (false)); }
2.4. Legge til informasjonskapsler
Å legge til en informasjonskapsel er en enkel prosess.
Vi lager informasjonskapselen og legger den til driveren ved hjelp av addCookie metode:
@Test offentlig ugyldig nårAddingCookie_thenItIsPresent () {driver.navigate (). Til (navUrl); Cookie cookie = ny Cookie ("foo", "bar"); driver.manage (). addCookie (informasjonskapsel); Cookie driverCookie = driver.manage (). GetCookieNamed ("foo"); assertThat (driverCookie.getValue (), equalTo ("bar")); }
2.5. Slette informasjonskapsler
Som vi kanskje hadde forventet, kan vi også slette en informasjonskapsel ved hjelp av deleteCookie metode:
@Test offentlig ugyldig nårDeletingCookie_thenItIsAbsent () {driver.navigate (). Til (navUrl); Cookie lpCookie = driver.manage (). GetCookieNamed ("lp_120073"); assertThat (lpCookie, er (ikke (nullValue ()))); driver.manage (). deleteCookie (lpCookie); Cookie deleteCookie = driver.manage (). GetCookieNamed ("lp_120073"); assertThat (deleteCookie, is (nullValue ())); }
2.6. Overstyrende informasjonskapsler
Selv om det ikke er noen eksplisitt metode for å overstyre en informasjonskapsel, er det en enkel måte.
Vi kan slette informasjonskapselen og legge til en ny med samme navn, men med en annen verdi:
@Test offentlig ugyldig nårOverridingCookie_thenItIsUpdated () {driver.navigate (). To (navUrl); Cookie lpCookie = driver.manage (). GetCookieNamed ("lp_120073"); driver.manage (). deleteCookie (lpCookie); Cookie newLpCookie = ny informasjonskapsel ("lp_120073", "foo"); driver.manage (). addCookie (newLpCookie); Cookie overriddenCookie = driver.manage (). GetCookieNamed ("lp_120073"); assertThat (overriddenCookie.getValue (), equalTo ("foo")); }
3. Konklusjon
I denne raske opplæringen lærte vi hvordan vi kan jobbe med informasjonskapsler ved hjelp av Selenium WebDriver i Java gjennom raske og praktiske eksempler.
Som alltid er koden tilgjengelig på GitHub.