ANTICHAT

ANTICHAT (https://forum.antichat.xyz/index.php)
-   Общие вопросы программирования (https://forum.antichat.xyz/forumdisplay.php?f=206)
-   -   Selenium | LocalStorage (https://forum.antichat.xyz/showthread.php?t=1502031)

Vintik 30.01.2024 17:06

Привет, хочу логиниться в веб телеграм с помощью Selenium.

Значит, tg web сохраняет данные сессии в localStorage.

Вот чел написал класс на Пайтоне, который позволяет скопировать все данные localStorage:

How to get the localStorage with Python and Selenium WebDriver

What's the equivalent of: driver.get_cookies() to get the LocalStorage instead of Сookies?

stackoverflow.com


Я же дописал эту фигню, эти данные сохраняются в файл.

Дальше, при перезапуске (первый раз я сам от руки залогинился в телеграм веб) эти данные должны как-то использоваться

Я не могу найти как запустить страницу webdriver.get вместе с нужными localStorage

Python:





Код:

def
set
(
self
,
key
,
value
)
:
self
.
driver
.
execute_script
(
"window.localStorage.setItem(arguments[0], arguments[1]);"
,
key
,
value
)



Этот код не работает или я не понимаю когда его использовать. Если до get - то ошибка (потому что пустая вкладка), если после get - то бессмысленно, так как проверка уже прошла на регистрацию.

Fott 31.01.2024 21:43

У тебя название функции говорит на себя - execute_script - выполнение JS скрипта. https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage

Цитата:

Сообщение от Vintik

Если до get - то ошибка (потому что пустая вкладка)

Потому что на странице типа data нельзя загружать скрипт. Ты можешь сделать для наглядности при запуске браузера открытие страницы example.com, потом свой код, и ты увидишь что у тебя item`ы загрузятся на страницу, что логично.

Ты хочешь использовать функцию выполнения скрипта на странице, до начала загрузки страницы.

Если телеграмм оттуда берет данные для авторизации, то ты можешь попробовать открыть страницу -> записать данные в localStoarge -> и перезагрузить страницу при помощи







Python:





Код:

driver
.
refresh
(
)



Таким образом у тебя страница перезагрузится с данными.

Jogan 22.05.2024 22:03

Цитата:

Сообщение от Vintik

Привет, хочу логиниться в веб телеграм с помощью Selenium.
Значит, tg web сохраняет данные сессии в localStorage.
Вот чел написал класс на Пайтоне, который позволяет скопировать все данные localStorage:

How to get the localStorage with Python and Selenium WebDriver

What's the equivalent of: driver.get_cookies() to get the LocalStorage instead of Сookies?

stackoverflow.com


Я же дописал эту фигню, эти данные сохраняются в файл.
Дальше, при перезапуске (первый раз я сам от руки залогинился в телеграм веб) эти данные должны как-то использоваться
Я не могу найти как запустить страницу 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 23.05.2024 13:28

Цитата:

Сообщение от Jogan

Здравствуйте, подскажите пожалуйста удалось ли вам решить этот вопрос?
Столкнулся с такой же проблемой, но на java

Привет, нет, к сожалению, не удалось. И поэтому Selenium мне не помог в этом смысле, пришлось каждый раз сначала запускать страницу (открывать её в окне), а после уже руками вводить данные.


Время: 06:47