Как сохранить сессию браузера при работе с библиотекой selenium?

Нужно залогиниться на сайте и потом перейти на главную страницу нажав кнопку "На главную", для дальнейшего парсинга. Логирование получается реализовать:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time

browser = webdriver.Firefox()
type(browser)
browser.get('https://www.qrz.ru/passport/login')
emailElem = browser.find_element_by_id('email-login')
emailElem.send_keys('емейл.ru')
passElem = browser.find_element_by_id('password')
passElem.send_keys('123456')
passElem.send_keys(Keys.ENTER)
time.sleep(2)

Оказываюсь на своей страничке в личном кабинете. А вот дальше как быть? Как перейти на главную страницу?


Ответы (2 шт):

Автор решения: D. Violet

Вы можете сохранить текущие куки как объект python, используя pickle. Например:

import pickle
import selenium.webdriver 

driver = selenium.webdriver.Firefox()
driver.get("http://www.google.com")
pickle.dump( driver.get_cookies() , open("cookies.pkl","wb"))

а потом добавить их обратно:

import pickle
import selenium.webdriver 

driver = selenium.webdriver.Firefox()
driver.get("http://www.google.com")
cookies = pickle.load(open("cookies.pkl", "rb"))
for cookie in cookies:
    driver.add_cookie(cookie)

отсюда

→ Ссылка
Автор решения: ykoavlil

Selenium автоматически сохраняет куки до закрытия браузера.

from selenium import webdriver
from selenium.webdriver.common.by import By
import time

browser = webdriver.Chrome()

browser.get('https://www.qrz.ru/passport/login')
time.sleep(3)
# Принятие поп-ап "Этот сайт использует cookies"
browser.find_element(By.XPATH, '/html/body/div[5]/div/button').click()
# Авторизация
browser.find_element(By.ID,'email-login').send_keys('[email protected]')
browser.find_element(By.ID,'password').send_keys('123456')
browser.find_element(By.XPATH, '//*[@id="login-form"]/div[3]/input').click()
time.sleep(3)
# Переход на главную уже авторизованным пользователем
browser.get('https://www.qrz.ru')
→ Ссылка