שימוש בעוגיות עם סלניום WebDriver בג'אווה

1. סקירה כללית

במאמר זה נבחן במהירות כיצד להשתמש בעוגיות עם Selenium WebDriver ב- Java.

נדבר קצת על מקרי שימוש ואז נקפוץ ישר לקוד.

2. עבודה עם עוגיות

מקרה שימוש יומיומי לצורך מניפולציה של קובצי cookie הוא להמשיך את ההפעלה שלנו בין הבדיקות.

תרחיש פשוט עוד יותר הוא כשאנחנו רוצים לבדוק שהגב שלנו מגדיר כראוי עוגיות.

בחלקים הבאים נדבר בקצרה על טיפול בעוגיות תוך מתן דוגמאות פשוטות לקוד.

2.1. להכין

נצטרך להוסיף את התלות בסלניום-ג'אווה לפרויקט שלנו:

 org.seleniumhq.selenium selenium-java 3.14.0 

בואו נקבע את שיעור המבחנים שלנו:

SeleniumCookiesJUnitLiveTest {מנהל התקן פרטי של WebDriver; פרטי מחרוזת navUrl; @ לפני הריק הציבורי setUp () {יכולות יכולות = DesiredCapabilities.firefox (); מנהל התקן = FirefoxDriver חדש (יכולות); navUrl = "//baeldung.com"; }}

2.2. קריאת עוגיות

לאחר מכן נבצע בדיקה פשוטה לאימות שקובצי Cookie קיימים במנהל ההתקן שלנו לאחר שניווט לדף אינטרנט:

@ מבחן ציבורי בטל כאשר Navigate_thenCookiesExist () {driver.navigate (). To (navUrl); הגדר קובצי cookie = driver.manage (). GetCookies (); assertThat (עוגיות, זה (לא (ריק ()))); }

לעתים קרובות, אולי נרצה לחפש קובץ cookie ספציפי:

@ מבחן ציבורי בטל כאשר Navigate_thenLpCookieIsHasCorrectValue () {driver.navigate (). To (navUrl); קובץ cookie lpCookie = driver.manage (). GetCookieNamed ("lp_120073"); assertThat (lpCookie.getValue (), containString ("www.baeldung.com")); }

2.3. מאפייני עוגיות

ניתן לשייך קובץ cookie לדומיין, לקבל תאריך תפוגה ועוד.

בואו נסתכל על כמה מאפייני עוגיות נפוצים:

@ מבחן ציבורי בטל כאשר Navigate_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 (), הוא (לא (nullValue ()))); assertThat (lpCookie.isSecure (), equalTo (false)); assertThat (lpCookie.isHttpOnly (), equalTo (false)); }

2.4. הוספת עוגיות

הוספת עוגיה היא תהליך פשוט.

אנו יוצרים את העוגיה ומוסיפים אותה לנהג באמצעות ה- addCookie שיטה:

@ מבחן ציבורי בטל כאשרAddingCookie_thenItIsPresent () {driver.navigate (). To (navUrl); עוגיית עוגיות = עוגיה חדשה ("foo", "bar"); driver.manage (). addCookie (עוגיה); Cookie driverCookie = driver.manage (). GetCookieNamed ("foo"); assertThat (driverCookie.getValue (), equalTo ("בר")); }

2.5. מחיקת עוגיות

כפי שציפינו, אנו יכולים גם למחוק קובץ cookie באמצעות ה- deleteCookie שיטה:

@ מבחן ציבורי בטל כאשר DeleteCookie_thenItIsAbsent () {driver.navigate (). To (navUrl); קובץ cookie lpCookie = driver.manage (). GetCookieNamed ("lp_120073"); assertThat (lpCookie, is (not (nullValue ()))); driver.manage (). deleteCookie (lpCookie); קובץ cookie deleteCookie = driver.manage (). GetCookieNamed ("lp_120073"); assertThat (deleteCookie, is (nullValue ())); }

2.6. עקיפת עוגיות

למרות שאין שיטה מפורשת לביטול קובץ cookie, יש דרך פשוטה.

אנו יכולים למחוק את קובץ ה- cookie ולהוסיף קובץ חדש בשם זהה אך בעל ערך שונה:

@ מבחן ציבורי בטל כאשרOverridingCookie_thenItIsUpdated () {driver.navigate (). To (navUrl); קובץ cookie lpCookie = driver.manage (). GetCookieNamed ("lp_120073"); driver.manage (). deleteCookie (lpCookie); קובץ cookie newLpCookie = קובץ cookie חדש ("lp_120073", "foo"); driver.manage (). addCookie (newLpCookie); קובץ cookie overriddenCookie = driver.manage (). GetCookieNamed ("lp_120073"); assertThat (overriddenCookie.getValue (), equalTo ("foo")); }

3. מסקנה

במדריך מהיר זה למדנו כיצד לעבוד עם קובצי Cookie באמצעות Selenium WebDriver בג'אווה באמצעות דוגמאות מהירות ומעשיות.

כמו תמיד, הקוד זמין ב- GitHub.


$config[zx-auto] not found$config[zx-overlay] not found