---
title: 'Guía de pruebas automatizadas con Selenium + Robot Framework'
---
# Guía de Pruebas Automatizadas con Selenium + Robot Framework
La automatización de pruebas contribuye significativamente a mejorar la calidad del software, detectar errores de manera temprana y acelerar los ciclos de desarrollo. Además, facilita la ejecución de pruebas repetitivas en diferentes escenarios, navegadores o configuraciones sin intervención manual constante.
En este contexto, herramientas como Selenium y Robot Framework permiten crear soluciones robustas para automatizar pruebas en aplicaciones web. Selenium proporciona la capacidad de controlar navegadores web y simular la interacción de un usuario con la interfaz, mientras que Robot Framework ofrece una estructura clara basada en palabras clave que facilita la creación, lectura y mantenimiento de los casos de prueba.
La combinación de estas tecnologías permite desarrollar pruebas automatizadas eficientes, escalables y fáciles de comprender, incluso para equipos que no cuentan con una gran experiencia en programación.
A lo largo de esta guía se abordarán los aspectos principales para implementar pruebas automatizadas utilizando Selenium y Robot Framework, incluyendo:
- Requisitos previos y configuración del entorno de trabajo
- Instalación de Robot Framework, Selenium y las dependencias necesarias
- Diseño de pruebas automatizadas mediante archivos `.robot`
- Interacción con elementos web utilizando distintos tipos de localizadores
- Creación de validaciones para verificar el comportamiento del sistema
- Organización de pruebas mediante keywords, recursos y variables
- Ejecución de pruebas y generación de reportes automáticos
- Aplicación de buenas prácticas para la automatización de pruebas
---
## Requisitos previos y entorno necesario
### Python (obligatorio)
Python es el lenguaje base requerido para ejecutar Robot Framework y gestionar las dependencias del proyecto.
Comando para verificar la instalación:
```bash
python --version
```
### Robot Framework
Robot Framework permite crear y organizar casos de prueba utilizando una sintaxis basada en palabras clave.
Comando de instalación:
```bash
pip install robotframework
```
### Selenium y SeleniumLibrary
Selenium permite automatizar la interacción con navegadores web mediante la librería SeleniumLibrary.
Comandos de instalación:
```bash
pip install selenium
pip install robotframework-seleniumlibrary
```
### WebDriver del navegador
Es necesario descargar el WebDriver correspondiente al navegador que se va a automatizar (por ejemplo, ChromeDriver para Google Chrome) y asegurarse de que esté en el PATH.
### Visual Studio Code
Editor recomendado para crear y ejecutar los archivos `.robot`.
---
## ¿Qué es Robot Framework?
Robot Framework es un framework open-source para automatización de pruebas.
Permite crear, organizar y ejecutar casos de prueba usando una sintaxis basada en palabras clave (keywords), lo que facilita la lectura y mantenimiento de los tests incluso para personas con poca experiencia en programación.
Se integra fácilmente con librerías como SeleniumLibrary para pruebas web, RequestsLibrary para APIs, y muchas otras.
---
## Diseño de pruebas con Robot Framework
### ¿Cómo funciona?
Robot Framework organiza las pruebas mediante casos de prueba (Test Cases) y palabras clave (Keywords).
- Cada caso de prueba describe una funcionalidad que se desea verificar.
- Las palabras clave representan acciones, como abrir un navegador, escribir texto o hacer clic en un botón.
- Las pruebas se pueden estructurar para ser reutilizables, legibles y mantenibles, incluso para personas con poca experiencia en programación.
### Estructura de un archivo `.robot`
Un archivo `.robot` se divide en secciones principales:
```robot
*** Settings *** # Configuración de librerías y recursos
*** Variables *** # Declaración de variables reutilizables
*** Test Cases *** # Casos de prueba
*** Keywords *** # Palabras clave personalizadas
```
### Ejemplo explicado paso a paso
**Archivo:** `tests/login.robot`
```robot
*** Settings ***
Library SeleniumLibrary
*** Variables ***
${URL} https://example.com/login
${USER} admin
${PASSWORD} 123456
*** Test Cases ***
Login Correcto
Open Browser ${URL} chrome
Input Text id=username ${USER}
Input Text id=password ${PASSWORD}
Click Button id=login
Wait Until Page Contains Dashboard
Close Browser
```
**Explicación línea por línea:**
1. `Library SeleniumLibrary` → importa las funciones de Selenium para controlar navegadores.
2. **Variables** → `${URL}`, `${USER}`, `${PASSWORD}` se usan para no repetir datos.
3. **Test Case "Login Correcto"** → define un caso de prueba llamado "Login Correcto".
4. `Open Browser` → abre el navegador en la URL indicada.
5. `Input Text` → ingresa el usuario y la contraseña en los campos correspondientes.
6. `Click Button` → hace clic en el botón de login.
7. `Wait Until Page Contains` → espera hasta que la página muestre el texto "Dashboard" (verificación básica de éxito).
8. `Close Browser` → cierra el navegador al finalizar la prueba.
---
## Interacción con elementos web usando Selenium
### Tipos de localizadores
Para automatizar pruebas web, Selenium permite identificar elementos de la página mediante localizadores. Los más comunes son:
| Localizador | Descripción |
|---|---|
| `id` | Selecciona por el atributo `id` del elemento |
| `name` | Selecciona por el atributo `name` |
| `xpath` | Selecciona por la ruta XPath del elemento |
| `css selector` | Selecciona usando selectores CSS |
| `class name` | Selecciona por la clase CSS del elemento |
| `link text` / `partial link text` | Selecciona enlaces por su texto completo o parcial |
Ejemplo en Robot Framework:
```robot
Input Text id=username ${USER}
Click Button css=.btn-login
```
### Acciones comunes en pruebas
| Acción | Descripción |
|---|---|
| `Open Browser` | Abrir un navegador en una URL |
| `Input Text` | Escribir texto en un campo |
| `Click Button` / `Click Element` | Hacer clic en botones o enlaces |
| `Select From List By Value / Label` | Seleccionar opciones en menús desplegables |
| `Get Text` / `Element Should Contain` | Obtener o validar texto en la página |
| `Close Browser` | Cerrar el navegador al finalizar la prueba |
### Esperas y sincronización
Para asegurar que los elementos estén disponibles antes de interactuar, es importante usar esperas:
- `Wait Until Element Is Visible` → espera hasta que el elemento aparezca en la página.
- `Wait Until Page Contains` → espera hasta que aparezca cierto texto en la página.
- `Sleep` → espera un tiempo fijo (menos recomendado).
Ejemplo:
```robot
Wait Until Element Is Visible id=login
Input Text id=username ${USER}
```
---
## Validaciones esenciales en pruebas
Las validaciones permiten comprobar que la aplicación se comporta como se espera y son esenciales para garantizar la calidad del software.
### Verificación de elementos
Se asegura que un elemento esté presente o visible antes de interactuar con él:
```robot
Element Should Be Visible id=login-button
Element Should Exist css=.form-input
```
- `Element Should Be Visible` → verifica que el elemento esté visible en la página.
- `Element Should Exist` → verifica que el elemento exista en el DOM, aunque no sea visible.
### Validación de texto en la página
Se comprueba que el contenido mostrado en la página sea correcto:
```robot
Page Should Contain Dashboard
Element Text Should Be id=welcome-msg Bienvenido, ${USER}
```
- `Page Should Contain` → valida que la página contenga un texto específico.
- `Element Text Should Be` → valida que el texto de un elemento coincida exactamente con lo esperado.
### Uso de validaciones (asserts)
Las validaciones permiten detener la prueba si ocurre un error, garantizando que los resultados sean confiables:
```robot
Should Be Equal ${resultado} 10
Should Not Be Empty ${mensaje}
```
- `Should Be Equal` → compara dos valores y falla si no son iguales.
- `Should Not Be Empty` → verifica que un valor no esté vacío.
---
## Gestión y organización de pruebas
### Keywords reutilizables
Crear palabras clave personalizadas para acciones repetitivas y mejorar la mantenibilidad de los casos de prueba.
### Archivos de recursos
Centralizar keywords y variables en archivos `.robot` o `.resource` para su reutilización en múltiples pruebas.
### Variables
Definir variables globales para URLs, usuarios, contraseñas y otros datos que se repitan, facilitando cambios rápidos y consistentes.
---
## Estructura y ejecución de suites
### Agrupación de pruebas en suites
Organizar los casos de prueba por funcionalidad o módulo, permitiendo ejecutar grupos de pruebas de manera ordenada y selectiva.
### Ejecución de pruebas
- **Desde terminal:** ejecutar pruebas con el comando:
```bash
robot nombre_archivo.robot
```
- **Desde Visual Studio Code:** usar la terminal integrada o extensiones de Robot Framework para ejecutar los tests.
### Generación de reportes automáticos
Robot Framework crea automáticamente archivos HTML de reportes y logs, mostrando resultados detallados de cada ejecución:
- `report.html` → resumen visual.
- `log.html` → paso a paso de la ejecución.
---
## Buenas prácticas y solución de errores
### Errores comunes y soluciones
| Error | Solución |
|---|---|
| Elementos no encontrados | Usar localizadores estables (`id`, `data-*`) y esperas explícitas |
| Problemas de sincronización | Aplicar `Wait Until Element Is Visible` o `Wait Until Page Contains` |
| Versiones incompatibles de WebDriver | Verificar compatibilidad con el navegador y la versión de Selenium |
### Buenas prácticas profesionales
- Reutilizar keywords y variables.
- Mantener nombres descriptivos para tests y keywords.
- Organizar pruebas en suites lógicas.
- Documentar los tests para facilitar mantenimiento y colaboración.
- Probar en múltiples navegadores y entornos antes de producción.
---
## Referencias
- (2022). *Robotframework.org*. https://robotframework.org/SeleniumLibrary/SeleniumLibrary.html
- Ruiz, J. M. (2025, March 7). *Tutorial Robot Framework: Instalación y primeros pasos*. DEV Community. https://dev.to/jmr85/tutorial-robot-framework-instalacion-y-primeros-pasos-5cal