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:
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.
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.
To get a specific cookie, use the method driver.manage().getCookieNamed("cookiename"). This will return a cookie object.
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.
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.
Java
C#
Python
Javascript
Kotlin
WebDriver driver = new ChromeDriver();
driver.get("http://localhost:8080/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 = "http://localhost:8080/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();
driver = webdriver.Chrome()
driver.get("http://localhost:8080/demo/getData/")
driver.implicitly_wait(30)
driver.maximize_window()
print(f"Total cookies before creating 2 : {len(driver.get_cookies())}")
# Creating cookies
driver.add_cookie({"name": "cookie1", "value": "Welcome1"})
driver.add_cookie({"name": "cookie2", "value": "Welcome2"})
# Checking cookie size
print(f"Total cookies after creating 2 : {len(driver.get_cookies())}")
# Getting all cookies and printing its name and value
cookieInfo = driver.get_cookies()
for cookie in driver.get_cookies():
print(f"{cookie['name']}: {cookie['value']}")
# Getting cookie by name
cookie = driver.get_cookie("cookie1")
print(f"Getting cookie by name : cookie1 : {cookie['value']}")
# Deleting cookie by name
driver.delete_cookie("cookie1")
# Deleting all cookies
driver.delete_all_cookies()
# Printing cookie size after deleting
print(f"Total cookies after deleting 2: {len(driver.get_cookies())}")
driver.quit()
let driver = await new Builder().forBrowser('chrome').build();
await driver.get("http://localhost:8080/demo/home/");
await driver.manage().setTimeouts({ implicit: 30000 });
await driver.manage().window().maximize();
let cookieLength = 0;
cookieLength = await (await driver.manage().getCookies()).length;
console.log("Total cookies before creating 2 : " + cookieLength);
//Creating cookies
await driver.manage().addCookie({
name: 'cookie1',
value: 'Welcome1'
});
await driver.manage().addCookie({
name: 'cookie2',
value: 'Welcome2'
});
await driver.navigate().refresh();
//Checking cookie size
cookieLength = await (await driver.manage().getCookies()).length;
console.log("Total cookies after creating 2 : " + cookieLength);
//Getting all cookies and printing its name and value
let allCookies = await driver.manage().getCookies();
allCookies.forEach(cookie => {
console.log(`Name: ${cookie.name} | Value: ${cookie.value}`);
});
//Getting cookie by name
await driver.manage().getCookie('cookie1').then(function(cookie) {
console.log("Getting cookie by name : cookie1" + cookie.value);
});
//Deleting cookie by name
await driver.manage().deleteCookie("cookie1");
//Deleting all cookies
await driver.manage().deleteAllCookies();
//Printing cookie size after deleting
cookieLength = await (await driver.manage().getCookies()).length;
console.log("Total cookies after deleting 2: " +cookieLength);
await driver.quit();
val driver: WebDriver = ChromeDriver()
driver["http://localhost:8080/demo/home/"]
driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(30))
driver.manage().window().maximize()
println("Total cookies before creating 2 : " + driver.manage().cookies.size)
//Creating cookies
val cookie1 = Cookie("cookie1", "Welcome1")
driver.manage().addCookie(cookie1)
val cookie2 = Cookie("cookie2", "Welcome2")
//Adding cookies
driver.manage().addCookie(cookie1)
driver.manage().addCookie(cookie2)
//Checking cookie size
println("Total cookies after creating 2 : " + driver.manage().cookies.size)
//Getting all cookies and printing its name and value
val cookieInfo: Set<Cookie> = driver.manage().cookies
for (cookie in cookieInfo) {
println(cookie.name + " : " + cookie.value)
}
//Getting cookie by name
val cookieByName: Cookie = driver.manage().getCookieNamed("cookie1")
println(("Getting cookie by name : " + cookieByName.name) + " : " + cookieByName.value)
//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
println("Total cookies after deleting 2: " + driver.manage().cookies.size)
driver.quit()