Menggunakan Cookies Dengan Selenium WebDriver di Java

1. Ikhtisar

Di artikel ini, kita akan melihat sekilas cara menggunakan cookie dengan Selenium WebDriver di Java.

Kami akan berbicara sedikit tentang beberapa kasus penggunaan, dan kemudian kami akan langsung beralih ke kode.

2. Bekerja dengan Cookies

Kasus penggunaan sehari-hari untuk memanipulasi cookie adalah mempertahankan sesi kami di antara pengujian.

Skenario yang lebih sederhana adalah ketika kami ingin menguji bahwa backend kami menyetel cookie dengan benar.

Di bagian selanjutnya, kita akan membahas secara singkat tentang menangani cookie sambil memberikan contoh kode sederhana.

2.1. Mendirikan

Kita perlu menambahkan ketergantungan selenium-java ke proyek kita:

 org.seleniumhq.selenium selenium-java 3.14.0 

Mari kita siapkan kelas pengujian kita:

public class SeleniumCookiesJUnitLiveTest { private WebDriver driver; private String navUrl; @Before public void setUp() { Capabilities capabilities = DesiredCapabilities.firefox(); driver = new FirefoxDriver(capabilities); navUrl = "//baeldung.com"; } }

2.2. Membaca Cookies

Selanjutnya, kami akan menerapkan tes sederhana untuk memverifikasi bahwa cookie ada di driver kami setelah kami menavigasi ke halaman web:

@Test public void whenNavigate_thenCookiesExist() { driver.navigate().to(navUrl); Set cookies = driver.manage().getCookies(); assertThat(cookies, is(not(empty()))); }

Seringkali, kami mungkin ingin mencari cookie tertentu :

@Test public void whenNavigate_thenLpCookieIsHasCorrectValue() { driver.navigate().to(navUrl); Cookie lpCookie = driver.manage().getCookieNamed("lp_120073"); assertThat(lpCookie.getValue(), containsString("www.baeldung.com")); }

2.3. Properti Cookie

Cookie dapat dikaitkan dengan domain, memiliki tanggal kedaluwarsa, dan banyak lagi.

Mari kita lihat beberapa properti cookie yang umum:

@Test public void 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(not(nullValue()))); assertThat(lpCookie.isSecure(), equalTo(false)); assertThat(lpCookie.isHttpOnly(), equalTo(false)); }

2.4. Menambahkan Cookies

Menambahkan cookie adalah proses yang sangat mudah.

Kami membuat cookie dan menambahkannya ke driver menggunakan metode addCookie :

@Test public void whenAddingCookie_thenItIsPresent() { driver.navigate().to(navUrl); Cookie cookie = new Cookie("foo", "bar"); driver.manage().addCookie(cookie); Cookie driverCookie = driver.manage().getCookieNamed("foo"); assertThat(driverCookie.getValue(), equalTo("bar")); }

2.5. Menghapus Cookies

Seperti yang mungkin kami duga, kami juga dapat menghapus cookie menggunakan metode deleteCookie :

@Test public void whenDeletingCookie_thenItIsAbsent() { driver.navigate().to(navUrl); Cookie lpCookie = driver.manage().getCookieNamed("lp_120073"); assertThat(lpCookie, is(not(nullValue()))); driver.manage().deleteCookie(lpCookie); Cookie deletedCookie = driver.manage().getCookieNamed("lp_120073"); assertThat(deletedCookie, is(nullValue())); }

2.6. Cookie Utama

Meskipun tidak ada metode eksplisit untuk menimpa cookie, ada cara sederhana.

Kami dapat menghapus cookie dan menambahkan yang baru dengan nama yang sama tetapi nilai yang berbeda:

@Test public void whenOverridingCookie_thenItIsUpdated() { driver.navigate().to(navUrl); Cookie lpCookie = driver.manage().getCookieNamed("lp_120073"); driver.manage().deleteCookie(lpCookie); Cookie newLpCookie = new Cookie("lp_120073", "foo"); driver.manage().addCookie(newLpCookie); Cookie overriddenCookie = driver.manage().getCookieNamed("lp_120073"); assertThat(overriddenCookie.getValue(), equalTo("foo")); }

3. Kesimpulan

Dalam tutorial singkat ini, kami mempelajari cara bekerja dengan cookie menggunakan Selenium WebDriver di Java melalui contoh cepat dan praktis.

Seperti biasa, kode tersedia di GitHub.