Selenium | LocalStorage

Vintik

Через тернии к звёздам
Автор темы
Проверенный
1,521
995
Привет, хочу логиниться в веб телеграм с помощью Selenium.
Значит, tg web сохраняет данные сессии в localStorage.
Вот чел написал класс на Пайтоне, который позволяет скопировать все данные localStorage:
Я же дописал эту фигню, эти данные сохраняются в файл.
Дальше, при перезапуске (первый раз я сам от руки залогинился в телеграм веб) эти данные должны как-то использоваться
Я не могу найти как запустить страницу webdriver.get вместе с нужными localStorage
Python:
def set(self, key, value):
        self.driver.execute_script("window.localStorage.setItem(arguments[0], arguments[1]);", key, value)
Этот код не работает или я не понимаю когда его использовать. Если до get - то ошибка (потому что пустая вкладка), если после get - то бессмысленно, так как проверка уже прошла на регистрацию.
 
  • Нравится
Реакции: tyukapa, Jogan и Vespan

Fott

Простреленный
3,461
2,374
У тебя название функции говорит на себя - execute_script - выполнение JS скрипта. https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage
Если до get - то ошибка (потому что пустая вкладка)
Потому что на странице типа data нельзя загружать скрипт. Ты можешь сделать для наглядности при запуске браузера открытие страницы example.com, потом свой код, и ты увидишь что у тебя item`ы загрузятся на страницу, что логично.
1706723100159.png
Ты хочешь использовать функцию выполнения скрипта на странице, до начала загрузки страницы.

Если телеграмм оттуда берет данные для авторизации, то ты можешь попробовать открыть страницу -> записать данные в localStoarge -> и перезагрузить страницу при помощи
Python:
driver.refresh()
Таким образом у тебя страница перезагрузится с данными.
 
Последнее редактирование:

Jogan

Новичок
1
0
Привет, хочу логиниться в веб телеграм с помощью Selenium.
Значит, tg web сохраняет данные сессии в localStorage.
Вот чел написал класс на Пайтоне, который позволяет скопировать все данные localStorage:
Я же дописал эту фигню, эти данные сохраняются в файл.
Дальше, при перезапуске (первый раз я сам от руки залогинился в телеграм веб) эти данные должны как-то использоваться
Я не могу найти как запустить страницу webdriver.get вместе с нужными localStorage
Python:
def set(self, key, value):
        self.driver.execute_script("window.localStorage.setItem(arguments[0], arguments[1]);", key, value)
Этот код не работает или я не понимаю когда его использовать. Если до get - то ошибка (потому что пустая вкладка), если после get - то бессмысленно, так как проверка уже прошла на регистрацию.
Здравствуйте, подскажите пожалуйста удалось ли вам решить этот вопрос?
Столкнулся с такой же проблемой, но на java
 

Vintik

Через тернии к звёздам
Автор темы
Проверенный
1,521
995
Здравствуйте, подскажите пожалуйста удалось ли вам решить этот вопрос?
Столкнулся с такой же проблемой, но на java
Привет, нет, к сожалению, не удалось. И поэтому Selenium мне не помог в этом смысле, пришлось каждый раз сначала запускать страницу (открывать её в окне), а после уже руками вводить данные.