2013-02-25 9 views

Odpowiedz

85

Możesz zapisać obecne ciasteczka jako obiekt Pythona używając pikle. Na przykład:

import pickle 
import selenium.webdriver 

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

a później dodać je z powrotem:

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) 
+0

Otrzymuję komunikat o błędzie "pikle musi być <= 2". Używanie opublikowanego kodu pikla. Co to znaczy? Czy odnosi się do argumentów? –

+0

Czy to samo by się stało? cookieFile = open ("cookies.pkl", "w") dump = pickle.dumps (driver.get_cookies()) cookieFile.write (dump) –

+0

Cześć Aaron, trochę zmodyfikowałem próbkę - w zasadzie Flaga "b" dodana do otwartych sekcji pliku. Czy możesz spróbować z tym? –

16

Pamiętaj, można dodać tylko plik cookie dla domeny bieżących. jeśli chcesz dodać swoje konto Goolge.

Czy

browser.get('http://google.com') 
for cookie in cookies: 
    browser.add_cookie(cookie) 
+0

Powinno to być w ich dokumentacji :( – Tjorriemorrie

0

Kiedy trzeba cookie z sesji do sesji istnieje inny sposób to zrobić, użyj Chrome opcje użytkownika-data-dir aby korzystać z folderów profili, biegnę:

chrome_options = Options() 
chrome_options.add_argument("user-data-dir=selenium") 
driver = webdriver.Chrome(chrome_options=chrome_options) 
driver.get("www.google.com") 

Możesz zrobić tutaj login, który sprawdza interakcję z człowiekiem, robię to, a następnie ciasteczka, których potrzebuję teraz za każdym razem, gdy uruchamiam Webdrivera z tym folderem, wszystko tam jest. Możesz także ręcznie zainstalować rozszerzenia i mieć je w każdej sesji. Secon czas biegnę, wszystkie ciasteczka są tam:

chrome_options = Options() 
chrome_options.add_argument("user-data-dir=selenium") 
driver = webdriver.Chrome(chrome_options=chrome_options) 
driver.get("www.google.com") #Now you can see the cookies, the settings, Extensions and the logins done in the previous session are present here 

Zaletą jest to, można użyć wielu folderów z różnymi ustawieniami i ciasteczka, rozszerzenia bez konieczności ładowania, rozładunku ciasteczka, instalacji i deinstalacji rozszerzeń, zmieniać ustawienia , zmień loginy za pomocą kodu, a więc nie ma sposobu na złamanie logiki programu, itd. Również jest to szybsze niż havin, aby zrobić to wszystko za pomocą kodu.

Powiązane problemy