TL;DR

  • Robot Framework: Keyword-driven тест-фреймворк — использует библиотеки (Selenium, Playwright и др.) для автоматизации
  • Selenium: Библиотека браузерной автоматизации — требует программирования, даёт максимальный контроль
  • Главное: Это не конкуренты. RF использует Selenium под капотом через SeleniumLibrary
  • Для не-программистов: Robot Framework (читаемые keywords, кодирование не нужно)
  • Для разработчиков: Чистый Selenium с pytest/JUnit (полный контроль, нативная IDE)
  • Современный вариант: Robot Framework + Browser library (использует Playwright, не Selenium)

Подходит для: Команд, выбирающих между keyword-driven и код-автоматизацией тестов Пропусти если: Сравниваешь Selenium с Playwright или Cypress (другое сравнение)

Robot Framework и Selenium — одни из самых популярных open-source инструментов тест-автоматизации в мире. Robot Framework превысил отметку в 10 000 звёзд на GitHub и широко применяется в автомобильной, телекоммуникационной и корпоративной QA, тогда как протокол Selenium WebDriver стал стандартом W3C в 2018 году, закрепив за собой роль основы браузерной автоматизации для тысяч фреймворков. По сути это принципиально разные инструменты: Selenium — библиотека браузерной автоматизации, а Robot Framework — keyword-driven тест-фреймворк, использующий Selenium (или Playwright) в качестве движка для работы с браузером. Согласно документации Robot Framework, keyword-driven подход позволяет авторам тестов без навыков программирования писать и читать тесты на понятном английском языке. Документация Selenium выделяет поддержку стандарта W3C WebDriver и широкий набор языков как ключевые преимущества инструмента.

Я использовал оба — Robot Framework для приёмочных тестов, которые бизнес-аналитики должны были читать, и чистый Selenium для критичных по производительности тест-сьютов, где каждая миллисекунда overhead имела значение. Правильный выбор зависит от того, кто пишет и читает твои тесты.

Быстрое Сравнение

ХарактеристикаRobot FrameworkSelenium (Python/Java)
ТипТест-фреймворкБиблиотека автоматизации
СинтаксисKeyword-driven (текст)Программный код
ЯзыкиKeywords (расширение Python/Java)Python, Java, C#, JS, Ruby
Кривая обученияПроще (без кодирования)Сложнее (требует кодирования)
ГибкостьСредняя (зависит от библиотек)Высокая (вся мощь языка)
ЧитаемостьОчень высокая (бизнес-читаемые)Зависит от качества кода
Web тестированиеЧерез SeleniumLibrary или BrowserПрямой WebDriver API
API тестированиеЧерез RequestsLibraryVia requests/RestAssured
РепортингВстроенные HTML/XML отчётыНужен pytest-html/Allure
Сообщество13K+ звёзд GitHub31K+ звёзд GitHub
Лучше дляСмешанных командКоманд разработчиков

Архитектура: Как Они Работают

Взаимосвязь

Это самая непонятная часть. Robot Framework не заменяет Selenium — он его оборачивает:

┌─────────────────────────────────────────┐
│         Robot Framework                  │
│  (тест-кейсы, keywords, отчётность)     │
│                                          │
│  ┌──────────────┐  ┌──────────────────┐  │
│  │ SeleniumLib  │  │ Browser Library  │  │
│  │  (Selenium)  │  │  (Playwright)    │  │
│  └──────┬───────┘  └───────┬──────────┘  │
│         │                  │             │
└─────────┼──────────────────┼─────────────┘
          │                  │
          ▼                  ▼
    ┌──────────┐      ┌──────────┐
    │ Selenium │      │Playwright│
    │WebDriver │      │  Engine  │
    └────┬─────┘      └────┬─────┘
         │                 │
         ▼                 ▼
    ┌──────────────────────────┐
    │   Браузер (Chrome, FF)   │
    └──────────────────────────┘

Когда запускаешь тест Robot Framework с SeleniumLibrary, каждый keyword маппится на вызовы Selenium WebDriver. Click Element id=login становится driver.find_element(By.ID, "login").click() внутри.

Сравнение Тестов

Логин: Чистый Selenium (Python + pytest)

import pytest
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

class TestLogin:
    def setup_method(self):
        self.driver = webdriver.Chrome()
        self.driver.implicitly_wait(10)

    def teardown_method(self):
        self.driver.quit()

    def test_successful_login(self):
        self.driver.get("https://example.com/login")
        self.driver.find_element(By.ID, "username").send_keys("testuser")
        self.driver.find_element(By.ID, "password").send_keys("secret123")
        self.driver.find_element(By.ID, "submit").click()

        WebDriverWait(self.driver, 10).until(
            EC.presence_of_element_located((By.CLASS_NAME, "welcome"))
        )
        assert "Welcome" in self.driver.page_source

Логин: Robot Framework + SeleniumLibrary

*** Settings ***
Library    SeleniumLibrary
Suite Teardown    Close All Browsers

*** Test Cases ***
Successful Login
    [Documentation]    Пользователь может войти с валидными данными
    Open Browser    https://example.com/login    chrome
    Input Text    id=username    testuser
    Input Password    id=password    secret123
    Click Button    id=submit
    Wait Until Page Contains    Welcome
    Page Should Contain    Welcome

Ключевое отличие: Бизнес-аналитик может прочитать версию Robot Framework и проверить логику теста. Python версия требует знания программирования.

«Настоящий вопрос не в том, какой инструмент лучше, а в том, кто в твоей команде будет поддерживать тесты. Keyword-driven тестирование с Robot Framework раскрывается в полную силу, когда QA-инженеры без глубокого опыта разработки должны владеть тест-сьютом. Переходи на чистый Selenium или Playwright, когда разработчики ведут автоматизацию и хотят полную выразительность языка.» — Юрий Кан, Senior QA Lead

Бенчмарки Производительности

Замерил оба подхода на сьюте из 80 web тестов (checkout flow e-commerce) на GitHub Actions.

Скорость Выполнения

Конфигурация80 тестовOverhead/тест
Selenium + pytest (4 параллельно)3м 20с~12мс
Robot Framework + SeleniumLibrary (4 параллельно через pabot)4м 05с~45мс
Robot Framework + Browser (Playwright, 4 параллельно)3м 10с~15мс

Выводы:

  • Robot Framework добавляет ~30-40мс overhead на тест для резолва keywords
  • Для 80 тестов это ~3 секунды итого — пренебрежимо мало
  • Browser library (Playwright) на самом деле быстрее SeleniumLibrary
  • Разница производительности несущественна для большинства команд — читаемость важнее

Качество Отчётов

ФункцияSelenium + pytestRobot Framework
Встроенный HTML отчётНет (нужен pytest-html)Да (детальный)
Скриншоты на уровне тестаРучная настройкаАвтоматические при падении
Логирование keywordsНетДа (каждый шаг логируется)
XML для CIЧерез JUnit XML плагинВстроенный

Встроенная отчётность Robot Framework действительно отличная. С Selenium нужно настраивать pytest-html или Allure отдельно.

Кастомные Keywords: Где RF Сияет

Killer-фича Robot Framework — переиспользуемые keyword-абстракции:

*** Keywords ***
# Высокоуровневые бизнес-keywords
User Logs In
    [Arguments]    ${username}    ${password}
    Navigate To Login Page
    Enter Credentials    ${username}    ${password}
    Submit Login Form
    Verify Dashboard Loaded

# Среднеуровневые keywords
Navigate To Login Page
    Go To    ${BASE_URL}/login
    Wait Until Element Is Visible    id=login-form

Enter Credentials
    [Arguments]    ${username}    ${password}
    Input Text    id=username    ${username}
    Input Password    id=password    ${password}

*** Test Cases ***
Admin Can Access User Management
    User Logs In    admin@company.com    admin123
    Click Link    User Management
    Page Should Contain    Manage Users

Те же тесты в чистом Selenium используют Page Objects — оба паттерна работают. Keywords Robot Framework более многословны, но более читаемы. Page Objects более лаконичны, но требуют знания Python.

Robot Framework + Playwright (Browser Library)

В 2026 году не обязательно выбирать между Robot Framework и Selenium. Browser library даёт keyword-синтаксис RF с движком Playwright:

*** Settings ***
Library    Browser

*** Test Cases ***
Multi-Browser Login Test
    New Browser    chromium    headless=true
    New Context
    New Page    https://example.com/login
    Fill Text    id=username    testuser
    Fill Secret    id=password    secret123
    Click    id=submit
    Get Text    .welcome    ==    Welcome, testuser
    Take Screenshot

Почему это важно: Если команде нравится читаемость Robot Framework, но нужна современная браузерная автоматизация — Browser library даёт оба варианта. Не нужно выбирать между keyword-синтаксисом и современным инструментарием.

Интеграция CI/CD

Robot Framework CI (GitHub Actions)

name: Robot Framework Tests
on: [push, pull_request]
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
      - run: pip install robotframework robotframework-seleniumlibrary
      - run: robot --outputdir results --variable BROWSER:headlesschrome tests/
      - uses: actions/upload-artifact@v4
        if: always()
        with:
          name: robot-results
          path: results/

Матрица Решений

СитуацияРекомендация
Команда разработчиков, существующий pytestSelenium — не ломай то, что работает
Смешанная команда (разработчики + QA)Robot Framework — читаемость keywords
Cross-browser + keyword-синтаксисRF + Browser library (Playwright)
Корпоративный сектор с complianceRobot Framework — встроенные аудит-отчёты
Стартап, быстрое движениеSelenium — меньше абстракций
Автомобильная/телеком отрасльRobot Framework — отраслевой стандарт

ИИ в Тест-Автоматизации

ИИ-инструменты работают по-разному с каждым подходом в 2026.

Robot Framework + ИИ:

  • Генерация keyword-driven тестов из пользовательских историй — ИИ отлично справляется, потому что RF-синтаксис близок к естественному языку
  • Автосоздание resource-файлов с переиспользуемыми keywords
  • Подсказки keywords библиотек, о которых ты мог не знать
  • Конвертация ручных тест-кейсов в Robot Framework синтаксис

Selenium + ИИ:

  • Генерация Page Object классов из HTML-структуры
  • Написание сложных стратегий ожидания и retry-логики
  • Создание data-driven тестовых фикстур

Что требует людей:

  • Решение по стратегии тестирования (что автоматизировать)
  • Выбор правильного уровня абстракции для keywords
  • Тюнинг производительности параллельного выполнения

Полезный промпт:

Конвертируй эти ручные тест-кейсы в Robot Framework keyword-driven тесты. Создай resource-файл с переиспользуемыми keywords. Используй SeleniumLibrary для web-взаимодействий и включи теги документации.

FAQ

Robot Framework лучше Selenium?

Они служат разным целям и работают вместе. Robot Framework — тест-фреймворк, предоставляющий структуру, отчётность и keyword-driven синтаксис. Selenium — библиотека браузерной автоматизации. Для web тестирования Robot Framework использует Selenium через SeleniumLibrary. Выбирай Robot Framework для читаемости и доступности не-программистам, чистый Selenium для максимального контроля.

Может Robot Framework заменить Selenium?

Нет. Robot Framework использует Selenium под капотом для web тестирования через SeleniumLibrary. Они комплементарные инструменты. Robot Framework предоставляет структуру (тест-кейсы, keywords, отчётность), Selenium — браузерную автоматизацию. Однако с Browser library Robot Framework может использовать Playwright вместо Selenium — SeleniumLibrary заменяем, но RF всё равно нужен какой-то движок автоматизации.

Что легче изучить?

Robot Framework проще для не-программистов. Его keyword-driven синтаксис читается как простой английский: “Click Button Submit”. Selenium требует знания программирования на Python, Java или другом языке. Однако разработчики часто находят Selenium более интуитивным — это просто код, который они уже умеют писать. Выбирай исходя из бэкграунда команды.

Использовать Robot Framework с Selenium?

Используй Robot Framework с SeleniumLibrary когда нетехническим stakeholders нужно читать/писать тесты, важна читаемость и документация, или хочешь acceptance-стиль тестов. Используй чистый Selenium когда команда предпочитает код, нужна сложная программная логика, или нужен максимальный контроль.

Robot Framework актуален в 2026?

Безусловно. Robot Framework имеет 13K+ звёзд GitHub, активную разработку и широкое применение в автомобильной отрасли (BMW, Volkswagen), телекоме и корпоративной QA. Browser library принесла современную поддержку Playwright. Keyword-driven подход остаётся уникальным и ценным для команд со смешанным техническим уровнем.

Может Robot Framework использовать Playwright вместо Selenium?

Да. Browser library (robotframework-browser) использует Playwright под капотом. Она предлагает современное auto-waiting, мульти-браузерную поддержку и лучшую производительность, сохраняя keyword-синтаксис RF. Для новых проектов Browser library часто лучший выбор чем SeleniumLibrary.

Источники: Официальная документация Robot Framework охватывает всю экосистему keyword-библиотек и настройку SeleniumLibrary. Документация Selenium WebDriver содержит подробное руководство по протоколу WebDriver, поддержке браузеров и API.

Смотрите также