Как установить selenium webdriver на ubuntu, чтобы он работал под пользователем, если уже установлен и работает под root?

Как исправить ошибку session not created: Chrome failed to start при запуске тестового файла Selenium под пользователем? Какие права доступа нужно установить для папок Selenium WebDriver, чтобы избежать проблемы с запуском?
  • 5 января 2024 г. 16:58
Ответы на вопрос 2
Чтобы установить Selenium WebDriver на Ubuntu для использования под обычным пользователем (не root), вам нужно выполнить несколько шагов. Ниже приведена пошаговая инструкция:

1. **Установка виртуального окружения (опционально)**
   Чтобы избежать конфликтов с системными пакетами Python и запускать Selenium в изолированной среде, вы можете использовать виртуальное окружение.

   Для создания виртуального окружения и его активации выполните:
   ```sh
   python3 -m venv myenv
   source myenv/bin/activate
   ```
   
   Вместо `myenv` вы можете использовать любое другое имя для вашего виртуального окружения.

2. **Установка Selenium**
   Установите Selenium в текущем окружении (виртуальном или системном):
   ```sh
   pip install selenium
   ```

3. **Скачивание WebDriver**
   Скачайте WebDriver для вашего браузера (например, ChromeDriver для Google Chrome, GeckoDriver для Firefox и т.д.).

   Если используете Google Chrome, вы можете скачать ChromeDriver с официального сайта:
   ```sh
   wget https://chromedriver.storage.googleapis.com/2.41/chromedriver_linux64.zip
   unzip chromedriver_linux64.zip
   ```

   После распаковки, перенесите `chromedriver` в директорию из `PATH`:
   ```sh
   sudo mv chromedriver /usr/local/bin/
   ```

   Помните, что версия ChromeDriver должна соответствовать версии вашего браузера Google Chrome.

4. **Настройка прав для запуска WebDriver**
   Убедитесь, что у вас есть права на выполнение ChromeDriver:
   ```sh
   sudo chmod +x /usr/local/bin/chromedriver
   ```

5. **Исправление ошибки "session not created: Chrome failed to start"**
   Эта ошибка может возникнуть по разным причинам, включая недостаточные права доступа или проблемы с профилями пользователя. Вот несколько шагов для её устранения:

   - Проверьте права доступа к директории, где Chrome хранит пользовательский профиль (обычно `~/.config/google-chrome` или `~/.config/chromium`). Пользователь должен иметь права на чтение и запись в эту директорию.
   - Проблемы могут быть связаны также с графическим окружением. Selenium WebDriver требует X Window System для работы с браузером, если не используется headless режим. Вам могут помочь такие инструменты, как `xvfb` (виртуальный буфер кадров X):
     ```sh
     sudo apt install xvfb
     ```
     Запустите тесты используя `xvfb-run` для эмуляции графического окружения:
     ```sh
     xvfb-run python your_selenium_script.py
     ```
   - Также стоит проверить, чтобы версия ChromeDriver соответствовала версии установленного браузера Google Chrome.

   - Проверьте, что исполняемый файл браузера Chrome имеет права на запуск.

6. **Дополнительные параметры для ChromeOptions**
   В вашем коде Selenium вы можете добавить дополнительные параметры для Chrome, чтобы избежать некоторых общих ошибок:
   ```python
   from selenium import webdriver
   from selenium.webdriver.chrome.options import Options

   options = Options()
   options.add_argument("--no-sandbox")  # Отключение песочницы
   options.add_argument("--disable-dev-shm-usage") # Отключение использования /dev/sh
не проще ли селениум в докере запустить? зачем он на хосте? всё из коробки заработает.
Похожие вопросы