Bird
Raised Fist0
Selenium Pythontesting~5 mins

Cookie management in Selenium Python

Choose your learning style10 modes available
Introduction

Cookies help websites remember you. Managing cookies in tests lets us check if the website saves and uses this info correctly.

When testing if a website keeps you logged in after closing and reopening the browser.
When checking if user preferences are saved and loaded correctly.
When verifying that cookies are deleted after logout.
When testing how the website behaves with specific cookie values set.
When automating tests that require setting cookies to skip certain steps.
Syntax
Selenium Python
driver.get_cookies()
driver.get_cookie(name)
driver.add_cookie({'name': 'key', 'value': 'value'})
driver.delete_cookie(name)
driver.delete_all_cookies()

Use driver.get_cookies() to get all cookies as a list of dictionaries.

Cookies must have at least name and value when adding.

Examples
Get all cookies and print them as a list.
Selenium Python
cookies = driver.get_cookies()
print(cookies)
Get a specific cookie by name and print it.
Selenium Python
cookie = driver.get_cookie('session_id')
print(cookie)
Add a new cookie with name and value.
Selenium Python
driver.add_cookie({'name': 'test_cookie', 'value': '12345'})
Delete a cookie by its name.
Selenium Python
driver.delete_cookie('test_cookie')
Sample Program

This script opens a website, adds a cookie, prints it, prints total cookies, deletes the cookie, and checks it is gone.

Selenium Python
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
import time

options = Options()
options.add_argument('--headless=new')
service = Service()
driver = webdriver.Chrome(service=service, options=options)

try:
    driver.get('https://www.example.com')

    # Add a cookie
    driver.add_cookie({'name': 'mycookie', 'value': 'cookievalue'})

    # Get and print the cookie
    cookie = driver.get_cookie('mycookie')
    print(cookie)

    # Get all cookies
    all_cookies = driver.get_cookies()
    print(f"Total cookies: {len(all_cookies)}")

    # Delete the cookie
    driver.delete_cookie('mycookie')

    # Verify deletion
    cookie_after_delete = driver.get_cookie('mycookie')
    print(cookie_after_delete)

finally:
    driver.quit()
OutputSuccess
Important Notes

Cookies are domain-specific; you must be on the domain to add or get cookies.

Deleting a cookie removes it from the browser session immediately.

Use headless mode for faster tests without opening a browser window.

Summary

Cookies store small data for websites to remember you.

Selenium lets you add, get, and delete cookies during tests.

Managing cookies helps test login, preferences, and session behavior.

Practice

(1/5)
1. What is the primary purpose of managing cookies in Selenium tests?
easy
A. To install browser extensions automatically
B. To store and manipulate small pieces of data like session info during tests
C. To speed up the browser loading time
D. To change the browser's homepage

Solution

  1. Step 1: Understand what cookies do in web context

    Cookies store small data like session IDs or user preferences to remember users.
  2. Step 2: Relate cookie management in Selenium

    Selenium manages cookies to simulate user sessions and test behaviors depending on stored data.
  3. Final Answer:

    To store and manipulate small pieces of data like session info during tests -> Option B
  4. Quick Check:

    Cookies store session data = D [OK]
Hint: Cookies hold session data for tests, not browser settings [OK]
Common Mistakes:
  • Thinking cookies change browser settings
  • Confusing cookies with browser speed optimization
  • Assuming cookies install extensions
2. Which of the following is the correct way to add a cookie named user with value admin in Selenium Python?
easy
A. driver.add_cookie({'name': 'user', 'value': 'admin'})
B. driver.addCookie('user', 'admin')
C. driver.add_cookie('user', 'admin')
D. driver.addCookie({'user': 'admin'})

Solution

  1. Step 1: Recall Selenium Python cookie syntax

    The method add_cookie expects a dictionary with keys 'name' and 'value'.
  2. Step 2: Match the correct syntax

    driver.add_cookie({'name': 'user', 'value': 'admin'}) correctly uses driver.add_cookie({'name': 'user', 'value': 'admin'}).
  3. Final Answer:

    driver.add_cookie({'name': 'user', 'value': 'admin'}) -> Option A
  4. Quick Check:

    add_cookie needs dict with 'name' and 'value' keys = A [OK]
Hint: Use a dict with 'name' and 'value' keys for add_cookie [OK]
Common Mistakes:
  • Using camelCase method names like addCookie
  • Passing cookie name and value as separate arguments
  • Passing a dict without 'name' and 'value' keys
3. What will be the output of the following code snippet?
driver.add_cookie({'name': 'session', 'value': 'xyz123'})
cookie = driver.get_cookie('session')
print(cookie['value'])
medium
A. {'name': 'session', 'value': 'xyz123'}
B. session
C. xyz123
D. null

Solution

  1. Step 1: Add cookie with name 'session' and value 'xyz123'

    The cookie is stored with key 'session' and value 'xyz123'.
  2. Step 2: Retrieve cookie and print its 'value'

    Calling get_cookie('session') returns the cookie dict; printing cookie['value'] outputs 'xyz123'.
  3. Final Answer:

    xyz123 -> Option C
  4. Quick Check:

    get_cookie('session')['value'] = 'xyz123' [OK]
Hint: get_cookie returns dict; access 'value' key for cookie value [OK]
Common Mistakes:
  • Printing cookie name instead of value
  • Expecting get_cookie to return just the value string
  • Confusing cookie dict with string
4. Identify the error in this Selenium Python code for deleting a cookie:
driver.delete_cookie('user')
medium
A. Method name should be deleteCookie instead of delete_cookie
B. delete_cookie requires a dictionary, not a string
C. Must call driver.delete_all_cookies() instead
D. No error; this is the correct way to delete a cookie by name

Solution

  1. Step 1: Check Selenium Python method for deleting a cookie

    The method delete_cookie takes the cookie name as a string argument.
  2. Step 2: Verify the code usage

    Using driver.delete_cookie('user') correctly deletes the cookie named 'user'.
  3. Final Answer:

    No error; this is the correct way to delete a cookie by name -> Option D
  4. Quick Check:

    delete_cookie('name') is correct syntax = C [OK]
Hint: delete_cookie takes cookie name string, not dict [OK]
Common Mistakes:
  • Using camelCase method names
  • Passing dict instead of string
  • Confusing delete_cookie with delete_all_cookies
5. You want to test a website's behavior when a cookie named theme is set to dark. Which sequence of Selenium Python commands correctly sets this cookie, verifies it, and then deletes it?
hard
A. driver.add_cookie({'name': 'theme', 'value': 'dark'})\ncookie = driver.get_cookie('theme')\nassert cookie['value'] == 'dark'\ndriver.delete_cookie('theme')
B. driver.add_cookie('theme', 'dark')\ncookie = driver.get_cookie('theme')\nassert cookie == 'dark'\ndriver.delete_cookie('theme')
C. driver.add_cookie({'theme': 'dark'})\ncookie = driver.get_cookie('theme')\nassert cookie['value'] == 'dark'\ndriver.delete_cookie('theme')
D. driver.add_cookie({'name': 'theme', 'value': 'dark'})\ncookie = driver.get_cookie('theme')\nassert cookie == 'dark'\ndriver.delete_cookie('theme')

Solution

  1. Step 1: Add cookie with correct dictionary format

    Use add_cookie({'name': 'theme', 'value': 'dark'}) to set the cookie properly.
  2. Step 2: Retrieve cookie and assert its 'value'

    Get the cookie dict with get_cookie('theme') and check cookie['value'] == 'dark'.
  3. Step 3: Delete the cookie by name

    Use delete_cookie('theme') to remove the cookie after test.
  4. Final Answer:

    Correct sequence with dict, assert on value, and delete by name -> Option A
  5. Quick Check:

    add_cookie dict + get_cookie['value'] + delete_cookie(name) = B [OK]
Hint: Add cookie with dict, assert value key, delete by name [OK]
Common Mistakes:
  • Passing cookie as separate args instead of dict
  • Asserting cookie object equals string
  • Using wrong keys in cookie dict
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard