Selenium: сохранение и загрузка LocalStorage в / из файла - PullRequest
1 голос
/ 25 апреля 2020

В настоящее время я пишу скрипт в python, чтобы сообщить мне, сколько непрочитанных сообщений у меня в WhatsApp. Чтобы узнать количество непрочитанных сообщений, селен открывает web.whatsapp.com , однако мне приходится каждый раз проходить аутентификацию. Я обнаружил, что WhatsApp сохраняет данные для аутентификации в LocalStorage, поэтому я пытаюсь выяснить, как я могу сохранить содержимое из LocalStorage в файл, а затем прочитать его и установить все ключи.

Я пытался:

localStorage = driver.execute_script('return window.localStorage;')
print(localStorage)

, но когда я это делаю, мой терминал, на котором запущен скрипт, просто падает.

1 Ответ

1 голос
/ 25 апреля 2020

Создайте новый профиль пользователя в своем браузере, активируйте его и войдите в систему web.whatsapp.com, используя только что созданный профиль, закройте браузер. Запустите сценарий python и запустите веб-драйвер, используя новый профиль, и вы все равно должны войти в систему, то есть:


Пример ниже приведен для Firefox и web.whatsapp.com, но общая концепция может использоваться в других браузерах и на веб-сайтах.

1 - введите about:profiles в поле URL браузера и нажмите клавишу ввода
2 - нажмите Create a New Profile

enter image description here

3 - выберите name и folder для нового профиля (запомните местоположение профиля), в этом случае: d:\ff_profiles\selenium_user

enter image description here

4 - Активировать новый профиль браузера

enter image description here

5 - Войти на любой веб-сайт, который вы хотите пропустить процесс входа в систему селеном, в данном случае web.whatsapp.com

6 - После успешного входа в систему (после сканирования QR-кода) закройте браузер

7 - Использование профиля на ваш сценарий

from selenium import webdriver
fp = webdriver.FirefoxProfile('d:\\ff_profiles\\selenium_user') 
driver = webdriver.Firefox(firefox_profile=fp)
driver.get("https://web.whatsapp.com")
# you should still be logged in.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...