Automation Test
Vanna  

Handle cookies on website using Selenium

Handling cookies in Selenium can be useful for scenarios such as managing sessions, maintaining login states, and dealing with preferences on a website. Selenium provides a way to interact with cookies directly through the WebDriver. Here’s a guide on how to handle cookies in Selenium using Python:

1. Setting Up Selenium

First, make sure you have Selenium installed:

pip install selenium

You also need to install a WebDriver (e.g., ChromeDriver, GeckoDriver) for your browser. Ensure the WebDriver is compatible with your browser version.

2. Basic Operations with Cookies in Selenium

Selenium provides several methods to manage cookies during browser automation, including:

  • Get all cookies
  • Get a specific cookie
  • Add a cookie
  • Delete a cookie
  • Delete all cookies

Here’s how to use these methods in your code.

Example: Handling Cookies Using Selenium

Step 1: Import Required Modules

from selenium import webdriver
import time

Step 2: Set Up WebDriver

# Initialize the WebDriver
driver = webdriver.Chrome(executable_path='/path/to/chromedriver')  # Adjust path accordingly
driver.get('https://www.example.com')  # Open the website

Step 3: Manage Cookies

  1. Get All Cookies:
# Get all cookies
cookies = driver.get_cookies()
print(cookies)

This will return a list of dictionaries, each representing a cookie with details like the name, value, domain, expiry, etc.

  1. Get a Specific Cookie:
# Get a specific cookie by name
cookie = driver.get_cookie('cookie_name')
print(cookie)

This will return the cookie with the specified name, or None if no such cookie exists.

  1. Add a Cookie:
# Adding a new cookie
cookie = {'name': 'my_cookie', 'value': 'cookie_value'}
driver.add_cookie(cookie)

# Verify that the cookie was added
print(driver.get_cookies())

Note: You must be on a page (loaded with driver.get()) before adding a cookie. Selenium only allows adding cookies to the current domain.

  1. Delete a Specific Cookie:
# Delete a specific cookie by name
driver.delete_cookie('my_cookie')

# Verify the cookie was deleted
print(driver.get_cookies())
  1. Delete All Cookies:
# Delete all cookies
driver.delete_all_cookies()

# Verify all cookies are deleted
print(driver.get_cookies())

Step 4: Wait and Interact

# Wait for a few seconds to observe the behavior (optional)
time.sleep(5)

Step 5: Close the WebDriver

# Close the browser window
driver.quit()

Full Example Code:

from selenium import webdriver
import time

# Step 1: Initialize WebDriver and open the page
driver = webdriver.Chrome(executable_path='/path/to/chromedriver')
driver.get('https://www.example.com')

# Step 2: Get all cookies
cookies = driver.get_cookies()
print(f"All Cookies: {cookies}")

# Step 3: Get a specific cookie
cookie = driver.get_cookie('cookie_name')
print(f"Specific Cookie: {cookie}")

# Step 4: Add a new cookie
new_cookie = {'name': 'my_cookie', 'value': 'cookie_value'}
driver.add_cookie(new_cookie)

# Verify the cookie was added
cookies = driver.get_cookies()
print(f"Cookies after adding: {cookies}")

# Step 5: Delete a specific cookie
driver.delete_cookie('my_cookie')
cookies = driver.get_cookies()
print(f"Cookies after deletion: {cookies}")

# Step 6: Delete all cookies
driver.delete_all_cookies()
cookies = driver.get_cookies()
print(f"Cookies after deleting all: {cookies}")

# Optional: Wait and observe
time.sleep(5)

# Close the WebDriver
driver.quit()

Notes:

  • Cookies and Domain: You can only add cookies for the domain you’re currently on in the browser. Trying to set a cookie for a domain that hasn’t been loaded will raise an exception.
  • Session Cookies: Cookies that do not have an expiration date (i.e., session cookies) will be deleted once the session is over (when you close the browser).
  • Persistent Cookies: Cookies with expiration dates will persist across browser sessions unless explicitly deleted.

By managing cookies, you can simulate login states, persist preferences, or bypass some forms of session management during testing.

Leave A Comment