Содержание

Основы применения Selenium

Selenium – это мощный инструмент для автоматизации тестирования веб-приложений. Он позволяет имитировать действия пользователя в браузере, такие как клики по ссылкам, ввод текста в формы, переходы по страницам и т.д. Selenium поддерживает различные языки программирования, включая Python, Java, C#, и другие.

Установка Selenium в Docker

1. Создание Dockerfile. Сначала создайте Dockerfile, который описывает ваш образ, включая установку браузера (например, Chrome) и драйвера (например, ChromeDriver для Chrome).

FROM python:3.8-slim
 
# Установка зависимостей для Chrome
RUN apt-get update && apt-get install -y \
       wget \
       gnupg \
       xvfb \
       libxi6 \
       libgconf-2-4
 
# Установка Chrome
RUN wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
RUN dpkg -i google-chrome-stable_current_amd64.deb; apt-get -fy install
 
# Установка ChromeDriver
RUN wget https://chromedriver.storage.googleapis.com/2.41/chromedriver_linux64.zip
RUN unzip chromedriver_linux64.zip
RUN mv chromedriver /usr/bin/chromedriver
RUN chown root:root /usr/bin/chromedriver
RUN chmod +x /usr/bin/chromedriver
 
# Установка Selenium
RUN pip install selenium
 
# Установка вашего приложения
WORKDIR /app
COPY . /app
 
# Указание команды для запуска контейнера
CMD ["python", "your_test_script.py"]

2. Сборка образа Docker. Используйте команду docker build для сборки образа из Dockerfile.

docker build -t selenium-docker .

3. Запуск контейнера Docker. Запустите контейнер из вашего образа.

docker run selenium-docker

Пример теста с использованием Selenium

Давайте рассмотрим пример теста для веб-сайта, используя Python и Selenium. В примере ниже мы напишем тест для открытия Google и выполнения поискового запроса.

   from selenium import webdriver
   from selenium.webdriver.common.keys import Keys
 
   # Установка опций для Chrome
   options = webdriver.ChromeOptions()
   options.add_argument('--headless')  # Запуск в фоновом режиме
   options.add_argument('--no-sandbox')
   options.add_argument('--disable-dev-shm-usage')
 
   # Инициализация драйвера
   driver = webdriver.Chrome('/path/to/chromedriver', options=options)
 
   # Открытие страницы Google
   driver.get("http://www.google.com")
   assert "Google" in driver.title
 
   # Находим поле для поиска
   elem = driver.find_element_by_name("q")
 
   # Вводим текст для поиска и имитируем нажатие Enter
   elem.send_keys("Selenium")
   elem.send_keys(Keys.RETURN)
 
   # Проверка результатов
   assert "No results found." not in driver.page_source
 
   # Закрытие браузера
   driver.close()

В этом коде мы создаем экземпляр Chrome WebDriver, открываем страницу Google, ищем поле для поиска, вводим в него текст и имитируем нажатие клавиши Enter. Затем проверяем, что результаты поиска действительно появились.

Это базовый пример использования Selenium. В реальных проектах вам может понадобиться более сложная логика для навигации по сайту, взаимодействия с элементами на странице и обработки данных.