Cookies gebruiken met Selenium WebDriver in Java

1. Overzicht

In dit artikel zullen we kort bekijken hoe u cookies kunt gebruiken met Selenium WebDriver in Java.

We zullen een beetje praten over enkele use-cases, en dan gaan we meteen naar de code.

2. Werken met cookies

Een alledaags gebruik voor het manipuleren van cookies is om onze sessie tussen tests door te zetten.

Een nog eenvoudiger scenario is wanneer we willen testen of onze backend cookies correct instelt.

In de volgende secties zullen we het kort hebben over het omgaan met cookies, terwijl we eenvoudige codevoorbeelden geven.

2.1. Opstelling

We zullen de afhankelijkheid van selenium-java aan ons project moeten toevoegen:

 org.seleniumhq.selenium selenium-java 3.14.0 

Laten we onze testles opzetten:

openbare klasse SeleniumCookiesJUnitLiveTest {privé WebDriver-stuurprogramma; private String navUrl; @Before public void setUp () {Mogelijkheden mogelijkheden = DesiredCapabilities.firefox (); driver = nieuwe FirefoxDriver (mogelijkheden); navUrl = "//baeldung.com"; }}

2.2. Cookies lezen

Vervolgens voeren we een eenvoudige test uit om te controleren of er cookies in onze driver aanwezig zijn nadat we naar een webpagina zijn genavigeerd:

@Test openbare leegte whenNavigate_thenCookiesExist () {driver.navigate (). To (navUrl); Zet cookies = driver.manage (). GetCookies (); assertThat (cookies, is (not (empty ()))); }

Vaak willen we misschien naar een specifieke cookie zoeken:

@Test openbare leegte whenNavigate_thenLpCookieIsHasCorrectValue () {driver.navigate (). Naar (navUrl); Cookie lpCookie = driver.manage (). GetCookieNamed ("lp_120073"); assertThat (lpCookie.getValue (), bevatString ("www.baeldung.com")); }

2.3. Cookie-eigenschappen

Een cookie kan aan een domein worden gekoppeld, een vervaldatum hebben en nog veel meer.

Laten we eens kijken naar enkele veelvoorkomende cookie-eigenschappen:

@Test openbare leegte whenNavigate_thenLpCookieHasCorrectProps () {driver.navigate (). To (navUrl); Cookie lpCookie = driver.manage (). GetCookieNamed ("lp_120073"); assertThat (lpCookie.getDomain (), equalTo (". baeldung.com")); assertThat (lpCookie.getPath (), equalTo ("/")); assertThat (lpCookie.getExpiry (), is (niet (nullValue ()))); assertThat (lpCookie.isSecure (), equalTo (false)); assertThat (lpCookie.isHttpOnly (), equalTo (false)); }

2.4. Cookies toevoegen

Het toevoegen van een cookie is een eenvoudig proces.

We creëren de cookie en voegen deze toe aan de driver met behulp van de addCookie methode:

@Test openbare leegte whenAddingCookie_thenItIsPresent () {driver.navigate (). To (navUrl); Cookie cookie = nieuwe Cookie ("foo", "bar"); driver.manage (). addCookie (cookie); Cookie driverCookie = driver.manage (). GetCookieNamed ("foo"); assertThat (driverCookie.getValue (), equalTo ("bar")); }

2.5. Cookies verwijderen

Zoals we misschien hadden verwacht, kunnen we ook een cookie verwijderen met de deleteCookie methode:

@Test openbare leegte whenDeletingCookie_thenItIsAbsent () {driver.navigate (). Naar (navUrl); Cookie lpCookie = driver.manage (). GetCookieNamed ("lp_120073"); assertThat (lpCookie, is (not (nullValue ()))); driver.manage (). deleteCookie (lpCookie); Cookie verwijderdCookie = driver.manage (). GetCookieNamed ("lp_120073"); assertThat (verwijderdCookie, is (nullValue ())); }

2.6. Cookies negeren

Hoewel er geen expliciete methode is om een ​​cookie te negeren, is er een eenvoudige manier.

We kunnen de cookie verwijderen en een nieuwe toevoegen met dezelfde naam maar met een andere waarde:

@Test openbare leegte whenOverridingCookie_thenItIsUpdated () {driver.navigate (). To (navUrl); Cookie lpCookie = driver.manage (). GetCookieNamed ("lp_120073"); driver.manage (). deleteCookie (lpCookie); Cookie newLpCookie = nieuwe Cookie ("lp_120073", "foo"); driver.manage (). addCookie (newLpCookie); Cookie overriddenCookie = driver.manage (). GetCookieNamed ("lp_120073"); assertThat (overriddenCookie.getValue (), equalTo ("foo")); }

3. Conclusie

In deze korte tutorial hebben we aan de hand van snelle en praktische voorbeelden geleerd hoe we met cookies kunnen werken met Selenium WebDriver in Java.

Zoals altijd is de code beschikbaar op GitHub.