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
| Feature | Robot Framework | Selenium |
|---|---|---|
| Tipo | Framework de tests | Library de automation |
| Sintaxis | Keyword-driven | Código de programación |
| Lenguajes | Keywords (basado en Python) | Python, Java, C#, JS |
| Curva aprendizaje | Más fácil (sin código) | Más difícil (requiere código) |
| Flexibilidad | Moderada | Alta |
| Legibilidad | Muy alta | Depende de calidad de código |
| Web testing | Via SeleniumLibrary | Directo |
| API testing | Via RequestsLibrary | Requiere 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
- Testers no-técnicos — sintaxis keyword no requiere programación
- Legibilidad para stakeholders — BAs y PMs pueden leer tests
- Acceptance testing — estilo behavior-driven encaja bien
- Testing multi-propósito — web, API, mobile con diferentes libraries
- Onboarding rápido — nuevos miembros del equipo productivos más rápido
Cuándo Elegir Selenium Puro
- Equipos developers — prefieren código sobre keywords
- Lógica compleja — loops, condicionales, waits custom
- Control máximo — necesitas acceso de bajo nivel al browser
- Codebase existente — hay infraestructura de tests Python/Java
- 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
| Library | Propósito |
|---|---|
| SeleniumLibrary | Web browser testing |
| RequestsLibrary | API testing |
| AppiumLibrary | Mobile testing |
| DatabaseLibrary | Database testing |
| SSHLibrary | Remote server testing |
Robot Framework es un framework de propósito general, no solo para web.
Ecosistema Selenium
| Herramienta | Propósito |
|---|---|
| Selenium WebDriver | Automatización de browser |
| Selenium Grid | Testing distribuido |
| Selenium IDE | Record/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
- Robot Framework Tutorial - Guía completa de RF
- Selenium Tutorial - Básicos de WebDriver
- Selenium vs Playwright - Alternativa moderna
- Test Automation Tutorial - Fundamentos de automation
