Cookies
Cookies play a significant role in web applications for maintaining session information and user preferences. Selenium provides methods to interact with cookies. Here are some common operations you can perform with cookies in Selenium:
Adding a Cookie
Using driver.manage().addCookie() method, you can add a specific cookie. If the cookie's domain name is left blank, it is assumed that the cookie is meant for the domain of the current document. If the path is blank, it will assume default path. If the expiry is blank, it will consider as no expiry.
Get All Cookies
The method driver.manage().getAllCookies() is used to get all the cookies for the current domain. It will return as a set of Cookie object.
Get a Specific Cookie
To get a specific cookie, use the method driver.manage().getCookieNamed("cookiename"). This will return a cookie object.
Deleting a Cookie
To delete a cookie, use the method driver.manage().deleteCookieNamed("cookiename") or driver.manage().deleteCookie(cookieObject). It will delete the cookie from the current domain. This is equivalent to setting the named cookie's expiry date to some time in the past.
Deleting All Cookies
Use the method driver.manage().deleteAllCookies() to delete all the cookies for the current domain.
The following example focus on the following:
- Add two cookies.
- Get all cookies.
- Get cookie by name.
- Delete cookie.
- Finally delete all cookie.
WebDriver driver = new ChromeDriver(); driver.get("https://www.testautomationstudio.com/demo/home/"); driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(30)); driver.manage().window().maximize(); System.out.println("Total cookies before creating 2 : " + driver.manage().getCookies().size()); //Creating cookies Cookie cookie1 = new Cookie("cookie1", "Welcome1"); driver.manage().addCookie(cookie1); Cookie cookie2 = new Cookie("cookie2", "Welcome2"); //Adding cookies driver.manage().addCookie(cookie1); driver.manage().addCookie(cookie2); //Checking cookie size System.out.println("Total cookies after creating 2 : " + driver.manage().getCookies().size()); //Getting all cookies and printing its name and value Set<Cookie> cookieInfo = driver.manage().getCookies(); for (Cookie cookie : cookieInfo) { System.out.println(cookie.getName() + " : " + cookie.getValue()); } //Getting cookie by name Cookie cookieByName = driver.manage().getCookieNamed("cookie1"); System.out.println("Getting cookie by name : " + cookieByName.getName() + " : " + cookieByName.getValue()); //Deleting cookie by name driver.manage().deleteCookieNamed("cookie1"); //Deleting cookie by cookies object driver.manage().deleteCookie(cookie1); //Deleting all cookies driver.manage().deleteAllCookies(); //Printing cookie size after deleting System.out.println("Total cookies after deleting 2: " + driver.manage().getCookies().size()); driver.quit();
IWebDriver driver = new ChromeDriver(); driver.Url = "https://www.testautomationstudio.com/demo/home/"; driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(30); driver.Manage().Window.Maximize(); Console.WriteLine("Total cookies before creating 2 : " + driver.Manage().Cookies.AllCookies.Count); //Creating cookies Cookie cookie1 = new Cookie("cookie1", "Welcome1"); driver.Manage().Cookies.AddCookie(cookie1); Cookie cookie2 = new Cookie("cookie2", "Welcome2"); //Adding cookies driver.Manage().Cookies.AddCookie(cookie1); driver.Manage().Cookies.AddCookie(cookie2); //Checking cookie size Console.WriteLine("Total cookies after creating 2 : " + driver.Manage().Cookies.AllCookies.Count); //Getting all cookies and printing its name and value var cookieInfo = driver.Manage().Cookies.AllCookies; foreach (Cookie cookie in cookieInfo) { Console.WriteLine(cookie.Name + " : " + cookie.Value); } //Getting cookie by name Cookie cookieByName = driver.Manage().Cookies.GetCookieNamed("cookie1"); Console.WriteLine("Getting cookie by name : " + cookieByName.Name + " : " + cookieByName.Value); //Deleting cookie by name driver.Manage().Cookies.DeleteCookieNamed("cookie1"); //Deleting cookie by cookies object driver.Manage().Cookies.DeleteCookie(cookie1); //Deleting all cookies driver.Manage().Cookies.DeleteAllCookies(); //Printing cookie size after deleting Console.WriteLine("Total cookies after deleting 2: " + driver.Manage().Cookies.AllCookies.Count); driver.Quit();