TL;DR

  • Robot Framework: Framework de tests keyword-driven, usa libraries para automation
  • Selenium: Library de automatización de browser, requiere programación
  • Relación: Robot Framework + SeleniumLibrary = web testing keyword-driven
  • Para no-programadores: Robot Framework (sintaxis legible, sin código)
  • Para developers: Selenium con Python/Java (más control, flexibilidad)
  • Lo mejor de ambos: Usa Robot Framework cuando importa la legibilidad de tests

Tiempo de lectura: 8 minutos

Robot Framework y Selenium frecuentemente se comparan, pero son herramientas diferentes que trabajan juntas. Selenium es una library de automatización de browser. Robot Framework es un framework de test automation que puede usar Selenium para web testing.

Entendiendo la Diferencia

¿Qué es Selenium?

Selenium es una library de automatización de browser:

from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
driver.get("https://example.com")
element = driver.find_element(By.ID, "login")
element.click()

Requiere programación y te da control directo del browser.

¿Qué es Robot Framework?

Robot Framework es un framework de tests keyword-driven:

*** Test Cases ***
User Can Login Successfully
    Open Browser    https://example.com    chrome
    Click Element    id=login
    Input Text    id=username    testuser
    Input Text    id=password    secret
    Click Button    Submit
    Page Should Contain    Welcome

Usa keywords legibles por humanos. Para web testing, usa SeleniumLibrary que envuelve Selenium.

Comparación Rápida

FeatureRobot FrameworkSelenium
TipoFramework de testsLibrary de automation
SintaxisKeyword-drivenCódigo de programación
LenguajesKeywords (basado en Python)Python, Java, C#, JS
Curva aprendizajeMás fácil (sin código)Más difícil (requiere código)
FlexibilidadModeradaAlta
LegibilidadMuy altaDepende de calidad de código
Web testingVia SeleniumLibraryDirecto
API testingVia RequestsLibraryRequiere library separada

Comparación de Ejemplos de Test

Selenium Puro (Python)

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")

        username = self.driver.find_element(By.ID, "username")
        username.send_keys("testuser")

        password = self.driver.find_element(By.ID, "password")
        password.send_keys("secret")

        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 con SeleniumLibrary

*** Settings ***
Library    SeleniumLibrary

*** Variables ***
${URL}        https://example.com/login
${BROWSER}    chrome

*** Test Cases ***
Successful Login
    [Documentation]    User can log in with valid credentials
    Open Browser    ${URL}    ${BROWSER}
    Input Text    id=username    testuser
    Input Password    id=password    secret
    Click Button    id=submit
    Wait Until Page Contains    Welcome
    [Teardown]    Close Browser

Los tests de Robot Framework son más legibles para stakeholders no-técnicos.

Arquitectura

Cómo Trabajan Juntos

Robot Framework (framework de tests)
        ↓
SeleniumLibrary (wrapper)
        ↓
Selenium WebDriver (automatización de browser)
        ↓
Browser (Chrome, Firefox, etc.)

SeleniumLibrary traduce keywords de Robot Framework en comandos Selenium.

Cuándo Elegir Robot Framework

  1. Testers no-técnicos — sintaxis keyword no requiere programación
  2. Legibilidad para stakeholders — BAs y PMs pueden leer tests
  3. Acceptance testing — estilo behavior-driven encaja bien
  4. Testing multi-propósito — web, API, mobile con diferentes libraries
  5. Onboarding rápido — nuevos miembros del equipo productivos más rápido

Cuándo Elegir Selenium Puro

  1. Equipos developers — prefieren código sobre keywords
  2. Lógica compleja — loops, condicionales, waits custom
  3. Control máximo — necesitas acceso de bajo nivel al browser
  4. Codebase existente — hay infraestructura de tests Python/Java
  5. Performance — ligeramente más rápido sin overhead del framework

Combinando Fortalezas

Keywords Custom en Robot Framework

Puedes crear keywords Python custom para lógica compleja:

# custom_keywords.py
from robot.api.deco import keyword
from selenium.webdriver.support.ui import WebDriverWait

@keyword('Wait For Element And Click')
def wait_for_element_and_click(driver, locator, timeout=10):
    element = WebDriverWait(driver, timeout).until(
        lambda d: d.find_element(*locator)
    )
    element.click()
*** Settings ***
Library    SeleniumLibrary
Library    custom_keywords.py

*** Test Cases ***
Complex Test
    Open Browser    https://example.com    chrome
    Wait For Element And Click    id=dynamic-button

Lo mejor de ambos mundos: tests legibles con lógica compleja cuando se necesita.

Más Allá del Web Testing

Libraries de Robot Framework

LibraryPropósito
SeleniumLibraryWeb browser testing
RequestsLibraryAPI testing
AppiumLibraryMobile testing
DatabaseLibraryDatabase testing
SSHLibraryRemote server testing

Robot Framework es un framework de propósito general, no solo para web.

Ecosistema Selenium

HerramientaPropósito
Selenium WebDriverAutomatización de browser
Selenium GridTesting distribuido
Selenium IDERecord/playback

Selenium se enfoca específicamente en automatización de browser.

FAQ

¿Es Robot Framework mejor que Selenium?

Sirven propósitos diferentes y trabajan juntos. Robot Framework es un framework de tests que provee estructura, reportes y sintaxis keyword-driven. Selenium es una library de automatización de browser. Para web testing, Robot Framework usa Selenium via SeleniumLibrary. Elige Robot Framework para legibilidad y accesibilidad a no-programadores, Selenium puro para máximo control y preferencia de developers.

¿Puede Robot Framework reemplazar Selenium?

No, Robot Framework usa Selenium bajo el capó para web testing via SeleniumLibrary. Son herramientas complementarias. Robot Framework provee la estructura del framework de tests (test cases, keywords, reportes), mientras Selenium provee la automatización de browser actual. No puedes hacer web testing con Robot Framework sin alguna library de browser.

¿Cuál es más fácil de aprender?

Robot Framework es más fácil para no-programadores. Su sintaxis keyword-driven se lee como inglés simple: “Click Button Submit”. Selenium requiere conocimiento de programación en Python, Java u otro lenguaje. Sin embargo, los developers frecuentemente encuentran Selenium más intuitivo ya que es solo código. Elige basándote en el background de tu equipo.

¿Debo usar Robot Framework con Selenium?

Usa Robot Framework con SeleniumLibrary cuando:

  • Stakeholders no-técnicos necesitan leer/escribir tests
  • La legibilidad y documentación de tests importan
  • Quieres tests estilo acceptance testing

Usa Selenium puro cuando:

  • Tu equipo prefiere código
  • Necesitas lógica de programación compleja
  • Quieres control máximo sobre interacción con browser

Ver También