Урок 21. Работа с cookie и локальным хранилищем в Selenium
Cookies и локальное хранилище позволяют сохранять данные о пользователе и сессии на сайте. Знание того, как работать с ними в Selenium, необходимо для автоматизации входа, тестирования авторизации и сохранения состояния между запусками скрипта.
Что такое cookie и локальное хранилище
- Cookies — небольшие текстовые файлы, которые сайт сохраняет в браузере для хранения информации о сессии, настройках и авторизации.
- Локальное хранилище (LocalStorage) — объект браузера для хранения данных на стороне клиента без ограничения на размер в отличие от cookies.
- SessionStorage — временное хранилище данных на текущую сессию, очищается после закрытия вкладки.
Работа с cookies через Selenium
Selenium предоставляет методы для получения, добавления и удаления cookies.
Вот рабочий пример с реальным сайтом (возьмём Википедию, так как она даёт cookies без авторизации):
from selenium import webdriver
import time
# Запускаем браузер
driver = webdriver.Chrome()
driver.get("https://ru.wikipedia.org/")
time.sleep(2) # ждём загрузку
# Получаем все cookies
all_cookies = driver.get_cookies()
print("Все cookies на Википедии:")
for c in all_cookies:
print(c)
# Добавляем свою cookie
driver.add_cookie({"name": "my_test_cookie", "value": "hello_selenium"})
# Проверяем, что cookie добавлена
cookie = driver.get_cookie("my_test_cookie")
print("\nНовая cookie:", cookie)
# Удаляем добавленную cookie
driver.delete_cookie("my_test_cookie")
print("\nПосле удаления:", driver.get_cookie("my_test_cookie"))
# Закрываем браузер
driver.quit()
Результат
⚡ В этом примере:
Работа с локальным и sessionStorage через JavaScript
Пример с localStorage — хранилищем браузера, куда сайты могут сохранять данные (например, токен авторизации, настройки пользователя, корзину товаров). В отличие от cookie, данные из localStorage не отправляются на сервер при каждом запросе, они остаются только в браузере.
Возьмём сайт https://www.w3schools.com/html/tryit.asp?filename=tryhtml5_webstorage_local — это демо для работы с localStorage.
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
# Запускаем браузер
driver = webdriver.Chrome()
driver.maximize_window()
# Загружаем демо-страницу w3schools
driver.get("https://www.w3schools.com/html/tryit.asp?filename=tryhtml5_webstorage_local")
# В iframe находится контент, нужно переключиться
driver.switch_to.frame("iframeResult")
# Выполним JS для добавления данных в localStorage
driver.execute_script("localStorage.setItem('username', 'ivan');")
# Читаем данные
username = driver.execute_script("return localStorage.getItem('username');")
print("Имя пользователя из localStorage:", username)
time.sleep(2)
# Удаляем один ключ
driver.execute_script("localStorage.removeItem('username');")
# Проверяем, что удалено
username = driver.execute_script("return localStorage.getItem('username');")
print("После удаления:", username)
# Добавляем несколько значений
driver.execute_script("localStorage.setItem('theme', 'dark');")
driver.execute_script("localStorage.setItem('lang', 'ru');")
# Читаем всё содержимое localStorage
all_data = driver.execute_script("return {...localStorage};")
print("Все данные в localStorage:", all_data)
# Очищаем localStorage
driver.execute_script("localStorage.clear();")
# Проверяем
all_data = driver.execute_script("return {...localStorage};")
print("После очистки:", all_data)
driver.quit()
🔹 Что будет:
Умение управлять cookies и локальным хранилищем позволяет обходить авторизацию, сохранять состояние сессий и автоматизировать сложные сценарии работы сайтов.
Больше уроков по парсингу на parsertools.ru/lessons.
