Menggunakan Kuki Dengan Selenium WebDriver di Java

1. Gambaran keseluruhan

Dalam artikel ini, kita akan melihat dengan cepat cara menggunakan kuki dengan Selenium WebDriver di Java.

Kami akan bercakap sedikit mengenai beberapa kes penggunaan, dan kemudian kami akan langsung memasuki kod.

2. Bekerja dengan Cookies

Kes penggunaan sehari-hari untuk memanipulasi kuki adalah meneruskan sesi kami di antara ujian.

Senario yang lebih sederhana adalah ketika kita ingin menguji bahawa backend kita menetapkan kuki dengan betul.

Pada bahagian seterusnya, kami akan membincangkan secara ringkas mengenai pengendalian kuki sambil memberikan contoh kod mudah.

2.1. Persediaan

Kita perlu menambahkan kebergantungan selenium-java ke projek kita:

 org.seleniumhq.selenium selenium-java 3.14.0 

Mari sediakan kelas ujian kami:

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 Kuki

Seterusnya, kami akan melaksanakan ujian mudah untuk mengesahkan bahawa kuki ada di pemacu kami setelah kami menavigasi ke laman web:

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

Selalunya, kami mungkin ingin mencari kuki 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. Hartanah Kuki

Kuki boleh dikaitkan dengan domain, mempunyai tarikh luput dan banyak lagi.

Mari lihat beberapa sifat kuki biasa:

@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. Menambah Kuki

Menambah kuki adalah proses yang mudah.

Kami membuat kuki dan menambahkannya ke pemacu menggunakan kaedah 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. Memadam Kuki

Seperti yang kami jangkakan, kami juga dapat menghapus kuki menggunakan kaedah 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. Kuki Yang Tertinggal

Walaupun tidak ada kaedah eksplisit untuk mengganti kuki, ada cara mudah.

Kita boleh memadam kuki dan menambah yang baru dengan nama yang sama tetapi mempunyai nilai yang berbeza:

@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. Kesimpulannya

Dalam tutorial ringkas ini, kami belajar bagaimana bekerja dengan kuki menggunakan Selenium WebDriver di Java melalui contoh cepat dan praktikal.

Seperti biasa, kodnya tersedia di GitHub.