Cookies help websites remember you. Managing cookies in tests lets you check if your site handles user data right.
Cookie management in Selenium Java
Introduction
Syntax
Selenium Java
driver.manage().getCookies(); driver.manage().getCookieNamed("cookieName"); driver.manage().addCookie(new Cookie("name", "value")); driver.manage().deleteCookieNamed("cookieName"); driver.manage().deleteAllCookies();
Use driver.manage() to access cookie methods.
Cookies have a name and value, and can have other details like domain and expiry.
Examples
Selenium Java
Set<Cookie> allCookies = driver.manage().getCookies();
Selenium Java
Cookie sessionCookie = driver.manage().getCookieNamed("session_id");Selenium Java
Cookie newCookie = new Cookie("user", "John"); driver.manage().addCookie(newCookie);
Selenium Java
driver.manage().deleteCookieNamed("user");Sample Program
This test opens a website, adds a cookie, checks it, lists all cookies, deletes the cookie, and confirms deletion.
Selenium Java
import org.openqa.selenium.Cookie; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import java.util.Set; public class CookieManagementTest { public static void main(String[] args) { System.setProperty("webdriver.chrome.driver", "path/to/chromedriver"); WebDriver driver = new ChromeDriver(); try { driver.get("https://example.com"); // Add a cookie Cookie cookie = new Cookie("testCookie", "testValue"); driver.manage().addCookie(cookie); // Get the cookie Cookie retrieved = driver.manage().getCookieNamed("testCookie"); System.out.println("Cookie value: " + retrieved.getValue()); // Get all cookies Set<Cookie> cookies = driver.manage().getCookies(); System.out.println("Total cookies: " + cookies.size()); // Delete the cookie driver.manage().deleteCookieNamed("testCookie"); Cookie deleted = driver.manage().getCookieNamed("testCookie"); System.out.println("Cookie after deletion: " + deleted); } finally { driver.quit(); } } }
Important Notes
Always quit the driver to close the browser after tests.
Deleting a cookie removes it from the browser session immediately.
Cookie names are case-sensitive.
Summary
Cookies store small data for websites to remember users.
Selenium lets you add, get, and delete cookies during tests.
Managing cookies helps test user sessions and preferences.
Practice
1. What is the primary purpose of managing cookies in Selenium tests?
easy
Solution
Step 1: Understand what cookies do
Cookies store small data such as user sessions or preferences to remember users.Step 2: Relate to Selenium's cookie management
Selenium allows adding, retrieving, and deleting cookies to simulate user sessions during tests.Final Answer:
To store and manipulate small pieces of data like user sessions -> Option BQuick Check:
Cookies = user session data [OK]
Hint: Cookies store user info for session tests [OK]
Common Mistakes:
- Confusing cookies with browser window controls
- Thinking cookies locate page elements
- Assuming cookies run JavaScript
2. Which of the following is the correct way to add a cookie in Selenium Java?
easy
Solution
Step 1: Recall Selenium cookie API
Cookies are added via driver.manage().addCookie() method with a Cookie object.Step 2: Check syntax correctness
driver.manage().addCookie(new Cookie("name", "value")); uses correct method and creates a new Cookie object properly.Final Answer:
driver.manage().addCookie(new Cookie("name", "value")); -> Option DQuick Check:
Use driver.manage().addCookie(new Cookie()) [OK]
Hint: Use driver.manage().addCookie(new Cookie()) [OK]
Common Mistakes:
- Calling addCookie directly on driver
- Using incorrect method names like cookieAdd
- Passing strings instead of Cookie objects
3. What will be the output of the following code snippet?
Cookie cookie = new Cookie("session", "abc123");
driver.manage().addCookie(cookie);
Cookie retrieved = driver.manage().getCookieNamed("session");
System.out.println(retrieved.getValue());medium
Solution
Step 1: Add cookie named "session" with value "abc123"
The code adds a cookie with name "session" and value "abc123" to the browser.Step 2: Retrieve cookie by name and print its value
driver.manage().getCookieNamed("session") returns the cookie object, and getValue() prints "abc123".Final Answer:
abc123 -> Option AQuick Check:
getCookieNamed("session").getValue() = abc123 [OK]
Hint: getCookieNamed returns cookie object; getValue prints value [OK]
Common Mistakes:
- Expecting cookie name instead of value
- Assuming null if cookie not found (but it is added)
- Thinking exception is thrown when cookie exists
4. Identify the error in this Selenium Java code for deleting a cookie:
driver.manage().deleteCookie("session");medium
Solution
Step 1: Check deleteCookie method signature
deleteCookie expects a Cookie object, not a String name.Step 2: Correct usage
To delete by name, use deleteCookieNamed(String name) instead.Final Answer:
deleteCookie method requires a Cookie object, not a String -> Option CQuick Check:
deleteCookie(Cookie) vs deleteCookieNamed(String) [OK]
Hint: Use deleteCookieNamed for String name, deleteCookie for Cookie object [OK]
Common Mistakes:
- Passing String to deleteCookie instead of Cookie object
- Confusing deleteCookie and deleteCookieNamed methods
- Calling deleteCookie on wrong object
5. You want to test that after deleting a cookie named "user", it no longer exists. Which code snippet correctly verifies this?
hard
Solution
Step 1: Delete cookie by name "user"
Use deleteCookieNamed("user") to remove the cookie by its name.Step 2: Verify cookie no longer exists
getCookieNamed("user") returns null if cookie is deleted; assert null confirms deletion.Final Answer:
driver.manage().deleteCookieNamed("user"); assert driver.manage().getCookieNamed("user") == null; -> Option AQuick Check:
Deleted cookie returns null [OK]
Hint: Deleted cookie returns null on getCookieNamed [OK]
Common Mistakes:
- Checking getValue() on null cookie causing NullPointerException
- Using deleteCookie with Cookie object without correct value
- Asserting cookie still exists after deletion
Recommended
Ready to prove it?
Pass the test and this pattern moves unknown
10 questions ~5 mineasy hard
