Jak mogę zapisać wszystkie pliki cookie w Selenium WebDriver w Pythonie do pliku tekstowego, a następnie wczytać je później? Dokumentacja nie mówi nic o funkcji getCookies.Jak zapisywać i ładować pliki cookie za pomocą Python + Selenium WebDriver
Odpowiedz
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)
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)
Powinno to być w ich dokumentacji :( – Tjorriemorrie
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.
- 1. Jak wysyłać pliki cookie za pomocą selenu webdriver?
- 2. Jak zautomatyzować captcha za pomocą Selenium Webdriver?
- 3. Wyczyść przeglądarkę Pliki cookie z powiązaniami Java Selenium WebDriver
- 4. Selenium Webdriver: Usuń pliki cookie na wszystkich domenach
- 5. Uzyskiwanie lub manipulowanie wszystkimi plikami cookie w Selenium Webdriver
- 6. Czy usunąć pliki cookie sesji za pomocą Selenium IDE?
- 7. Używanie PhantomJS z Selenium Webdriver i Python
- 8. Autouzupełnianie testu za pomocą Selenium webdriver
- 9. Sprawdzanie tekstu zastępczego za pomocą Selenium Webdriver
- 10. Pobierz tytuł strony za pomocą Selenium WebDriver za pomocą Java
- 11. Python Firefox Webdriver tmp pliki
- 12. Selenium webdriver i unicode
- 13. Jak ładować pliki .ui do klas Pythona za pomocą PySide?
- 14. Jak używać sterownika HtmlUnit z Selenium za pomocą powiązań Python?
- 15. Selenium Webdriver z Javą kontra Python
- 16. Selenium WebDriver i DropDown Boxes
- 17. Jak obsługiwać przesyłanie plików systemu Windows za pomocą Selenium WebDriver?
- 18. Jak pobrać plik .docx za pomocą Selenium webdriver w Javie?
- 19. Jak odczytać tekst z ukrytego elementu za pomocą Selenium WebDriver?
- 20. Jak przesłać plik za pomocą Selenium WebDriver w Javie
- 21. Jak uzyskać wybraną opcję za pomocą Selenium WebDriver z Pythonem?
- 22. Jak uzyskać nazwę strony za pomocą Selenium Webdriver (C#)?
- 23. Jak zaimplementować PhantomJS z Selenium WebDriver za pomocą java
- 24. Jak ustawić i sprawdzić pliki cookie za pomocą JAX-RS?
- 25. W jaki sposób klikasz element ukryty za pomocą Selenium WebDriver?
- 26. Najlepsza praktyka oczekiwania na zmianę za pomocą Selenium Webdriver?
- 27. Wyciągnij link z XPath, używając Selenium Webdriver i Python?
- 28. Zmiana agenta użytkownika za pomocą selenium webdriver w Javie
- 29. Jak zapisywać i ładować klucze przy użyciu klasy java.security.KeyStore
- 30. Jak zapisywać i ładować linie rysunkowe iphone SDK
Otrzymuję komunikat o błędzie "pikle musi być <= 2". Używanie opublikowanego kodu pikla. Co to znaczy? Czy odnosi się do argumentów? –
Czy to samo by się stało? cookieFile = open ("cookies.pkl", "w") dump = pickle.dumps (driver.get_cookies()) cookieFile.write (dump) –
Cześć Aaron, trochę zmodyfikowałem próbkę - w zasadzie Flaga "b" dodana do otwartych sekcji pliku. Czy możesz spróbować z tym? –