Как можно использовать Selenium на Python для добавления и получения данных из local storage и session storage?

Как можно одновременно добавить два значения в local storage и session storage для одного и того же URL? <br/> Пример того, как это должно выглядеть: <br/>
  • 17 сентября 2024 г. 11:03
Ответы на вопрос 2
Для работы с `local storage` и `session storage` с использованием `Selenium` на Python, можно воспользоваться методами JavaScript через `execute_script`, чтобы добавлять и получать данные.

Вот пример кода, который демонстрирует, как одновременно добавить два значения в `local storage` и `session storage` для одного и того же URL. 

```python
from selenium import webdriver

# Укажите путь к вашему WebDriver
driver = webdriver.Chrome(executable_path='path/to/chromedriver')

try:
    # Откройте нужный URL
    driver.get('https://example.com')

    # Добавьте значение в local storage
    driver.execute_script("localStorage.setItem('localKey', 'localValue');")

    # Добавьте значение в session storage
    driver.execute_script("sessionStorage.setItem('sessionKey', 'sessionValue');")

    # Получите значение из local storage
    local_value = driver.execute_script("return localStorage.getItem('localKey');")
    print(f'Local Storage Value: {local_value}')

    # Получите значение из session storage
    session_value = driver.execute_script("return sessionStorage.getItem('sessionKey');")
    print(f'Session Storage Value: {session_value}')

finally:
    # Закройте браузер
    driver.quit()
```

### Пояснения к коду:
1. **Импорт библиотек**: Импортируем необходимые классы из `selenium`.
2. **Инициализация WebDriver**: Создаём экземпляр веб-драйвера (в данном случае для Chrome).
3. **Открытие URL**: Используем `driver.get()` для перехода на нужный сайт.
4. **Добавление данных**:
   - С помощью `execute_script` выполняем JavaScript для установки значений в `localStorage` и `sessionStorage`.
5. **Получение данных**:
   - Также с помощью `execute_script` получаем значения, которые были ранее установлены.
6. **Закрытие браузера**: После выполнения всех операций браузер закрывается с помощью `driver.quit()`.

### Установочные шаги:
- Убедитесь, что установлен Python и библиотека Selenium (`pip install selenium`).
- Скачайте подходящий WebDriver (например, [ChromeDriver](https://sites.google.com/chromium.org/driver/) для Chrome) и укажите путь к нему в коде. 

Этот код предоставляет пример работы с local и session storage с помощью Selenium, что позволяет вам сохранять временные данные в контексте браузера.
С использованием библиотеки selenium python, полагаю, никак. <br/> Разве что костылями выполнять через javascript: <br/> <br/> <pre><code class="python">from selenium import webdriver

driver = webdriver.Chrome()

driver.get("https://google.com")

driver.execute_script("window.localStorage.setItem('key', 'value');")
driver.execute_script("window.sessionStorage.setItem('key', 'value');")

local_storage_value = driver.execute_script("return window.localStorage.getItem('key');")
session_storage_value = driver.execute_script("return window.sessionStorage.getItem('key');</code></pre> <br/> <br/> Но я бы посоветовал использовать Playwright, там есть поддержка управления сессиями и хранилищами в более удобном виде.
Похожие вопросы