Перейти к содержимому

Alexnder

Регистрация: 11 авг 2016
Offline Активность: 01 сен 2016 11:11
-----

Мои темы

Selenium дамп куки и загрузка из дампа в Chrome - Python

11 августа 2016 - 06:24

Добрый день! 
Только начинаю разбираться с selenium'om из возник вопрос: как при работе с Chrome оставаться авторизованым на каком-то сайте?

Гугл привел меня на эту ссылку:
http://stackoverflow....nium-webdriver

Решил зайти, авторизоваться, сделать дамп этой куки и впоследствии загружать куку из дампа.

Написал такой скрипт для авторизации на ya.ru:

import pickle
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
 
driver = webdriver.Chrome("C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe")#инициализирую вебдрайвер
driver.get("https://ya.ru/")
#вхход в почту
elem = driver.find_element_by_xpath("/html/body/table/tbody/tr[1]/td/div[2]/a") 
elem.click()
#ищу поля логин-пароль
elem = driver.find_element_by_xpath('''//*[@id="nb-1"]/span/input''')
elem.send_keys("туточки логин")
elem = driver.find_element_by_xpath('''//*[@id="nb-2"]/span/input''')
elem.send_keys("туточки пароль")
#кнопка авторизации
elem = driver.find_element_by_xpath('''//*[@id="js"]/body/div[1]/div[1]/div[1]/form/div[4]/span/button''')
elem.click()
#cookies dump
pickle.dump(driver.get_cookies(), open("cookies.pkl","wb"))
#закрываю браузер  - куки в браузере не сохраняются
driver.close()
#открываю браузер заново
driver = webdriver.Chrome("C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe")
#загружаю куки из дампа
cookies = pickle.load(open("cookies.pkl","rb"))
print(cookies) #смотрю что я загрузил из дампа
driver.delete_all_cookies()#выпилю старые прежде чем загрузить новые
for cookie in cookies:
    driver.add_cookie(cookie)
 
#открываю страничку для которой делал дамп куки
driver.get("https://ya.ru/")

на строке

driver.add_cookie(cookie)

Получаю ошибку, вот вывод на консоль, включая вывод принта куки:

Скрытый текст

 

Как мне это исправить? Гугл ответа, увы, не дал. Заранее спасибо.