How to save and load cookies in Selenium using Python
Last Updated :
23 Jul, 2025
In web automation and testing, maintaining session information across different runs of scripts is often necessary. Cookies are a great way to save session data to avoid logging in repeatedly. Selenium, a popular tool for web testing, provides straightforward ways to save and load cookies using Python.
In this article, we will learn all the steps to handle cookies efficiently in Selenium.
Working with Cookies in Selenium
A cookie is a small piece of data that is sent from a website/server and stored on our computer. Cookies are mostly used to recognize the user and load the stored information. We can add, delete, and read cookies, which makes it convenient to manage sessions.
Key operations with cookies in Selenium:
- Adding a Cookie: Add a cookie to the current session using the add_cookie() method.
- Getting All Cookies: Retrieve all cookies stored in the current session with the get_cookies() method.
- Deleting Cookies: Remove cookies from the session using the delete_cookie() method.
1. Saving Cookies to `cookies.pkl`
In order to maintain the session details, we can write cookies into a file. This comes in handy when it becomes necessary to carry on with a session without signing back in.
The following code snippet saves cookies to a file after logging into a website:
Python
import undetected_chromedriver as uc
import pickle
driver = uc.Chrome()
driver.get('https://www.geeksforgeeks.org/')
# Perform actions (e.g., log in)
# ...
cookies = driver.get_cookies()
print(cookies)
with open('cookies.pkl', 'wb') as file:
pickle.dump(cookies, file)
print("Cookies saved successfully.")
# Close the browser
driver.quit()
Output: We get a cookies.pkl file in the current working directory. This file contains the saved cookies in binary format.
cookies.pkl
Saving cookies using Python Selenium2. Loading Cookies from cookies.pkl
To resume a session, we can load cookies from a file and add them back to the browser using Selenium.
The following code snippet loads cookies from a file and uses them to restore the session:
- Load Cookies: Read the
cookies.pkl
file and load the cookies into the browser using driver.add_cookie()
. - Refresh the Page: Refresh the browser to apply the loaded cookies.
Python
import undetected_chromedriver as uc
import pickle
driver = uc.Chrome()
driver.get('https://www.geeksforgeeks.org/')
# Load cookies from a file
with open('cookies.pkl', 'rb') as file:
cookies = pickle.load(file)
for cookie in cookies:
driver.add_cookie(cookie)
# Refresh the page to apply the cookies
driver.refresh()
# We can continue with our automation
# ...
# Close the browser
driver.quit()
3. Saving Cookies to cookies.json
Instead of using pickle
, we can use Python's json
module to save the cookies in a human-readable cookies.json
file.
Python
import undetected_chromedriver as uc
import json
driver = uc.Chrome()
driver.get('https://www.geeksforgeeks.org/')
# Perform actions (e.g., log in)
# ...
# Save cookies to a JSON file
cookies = driver.get_cookies()
with open('cookies.json', 'w') as file:
json.dump(cookies, file)
# Close the browser
driver.quit()
Output:
Saving cookies in json in selenium python4. Loading Cookies from cookies.json
We can use json.load()
to read the cookies from the cookies.json
file and load them into the browser as before.
To load cookies from a cookies.json
file, use the following code:
Python
import undetected_chromedriver as uc
import json
driver = uc.Chrome()
driver.get('https://www.geeksforgeeks.org/')
# Load cookies from a JSON file
with open('cookies.json', 'r') as file:
cookies = json.load(file)
for cookie in cookies:
driver.add_cookie(cookie)
# Refresh the page to apply the cookies
driver.refresh()
# We can continue with our automation
# ...
# Close the browser
driver.quit()
Best Practices
- Secure Storage: In particular, when it comes to sensitive data stored in cookies make sure to secure them properly. Do not allow this data to be accessed from source control or logs.
- Cookie Expiration: Refer to the expiration date prior to loading cookies to manage cookie expiration. If they aren’t working anymore, re-authenticate and save new ones.
- SameSite attribute: Ensure that when utilizing cookies across varying domains to prevent probable difficulties with sharing of cookies.
Conclusion
The strategy comprising Storage as well as Load cookies in Selenium using Python is simple but it is a very powerful technique for managing sessions during web tests. If cookies are kept persistently one will not have to log in again and again because all the automation will be easy. This method suits particularly those test scripts which have to preserve a session state after many executions.