Bienvenido a este repositorio donde se documentan todas las prácticas y herramientas necesarias para automatizar pruebas
web usando Python + Selenium. Vas a encontrar desde lo más básico hasta patrones avanzados como **Page Object Model
**, manejo de Excel para DDT, entornos virtuales, y frameworks como unittest, pytest y behave.
Este repo es parte de un curso/práctica personal para dominar Selenium con ejemplos claros, modularizados y actualizados. Dale que va.
| # | Tema | Archivo |
|---|---|---|
| 1 | Introducción a Python | 01-Introduccion.md |
| 2 | Selectores (CSS / XPath) | 02-Selectores.md |
| 3.1 | Ejemplos con Selenium | 03.1-Selenium.md |
| 3.2 | Expected Conditions + WebDriverWait | 03.2-ExpectedConditions.md |
| 4 | Tests con unittest |
04-Unitest.md |
| 5 | Page Object Model (POM) | 05-PageObjectModel.md |
| 6 | Manejo de Excel (DDT) | 06-Excel.md |
| 7 | Entornos Virtuales + Pytest Paralelo | 07-VEnv.md |
| 8 | Mouse Actions avanzadas | 08-Mouse Actions.md |
| 9 | Testing con pytest |
09-Pytest.md |
| 10 | Validaciones (assert, assertpy) |
10-Assertions.md |
| 11 | Reportes con pytest-html y Allure |
11-Reports.md |
| 12 | BDD con behave |
12-Behave.md |
| - | Prueba inicial / setup | 00-prueba.md |
- Selenium WebDriver (automatización web)
-
unittestypytest(frameworks de testing) -
behave(BDD con Gherkin) -
openpyxl(manejo de Excel) -
assertpy(soft assertions) -
pytest-xdist(ejecución paralela) -
pytest-htmlyAllure(reportes visuales)
- Cómo instalar Selenium
- Descargar drivers (Chrome/Firefox)
- Interacción con el DOM: inputs, botones, dropdowns
- Selectores: ID, CSS, XPath
- Navegación, scroll, waits y manejo de errores
- Tests simples con
unittest - Setup/TearDown
- Validaciones (
assertEqual,assert) - Pruebas con múltiples credenciales
- Separación entre lógica de test y lógica de página
- Reutilización de métodos
- Clase
Funciones.pycon helpers - Organización por carpetas
- Leer/escribir archivos Excel
- Clase
Funexcelcon métodos útiles - Integración con
pytest.mark.parametrize
- Mouse Actions: hover, doble click, drag & drop
- Subida de archivos
- Scroll dinámico con
scrollIntoView - Validación de modales, alerts, checkboxes
- Uso de
WebDriverWaitpara esperas dinámicas visibility_of_element_located,element_to_be_clickable, etc.
- Markers personalizados
- Parametrización de tests
- Fixtures con diferentes scopes
- Soft assertions (
assertpy) - Reportes automáticos (
pytest-html,Allure)
- Features en Gherkin
- Steps con Selenium
- Uso de
Scenario OutlineyExamples - Backgrounds reutilizables
- pytest-html: ejecutá tus tests y generá HTML automáticamente
pytest test_login.py --html=report.html-
Allure:
- Instalar:
pip install allure-pytest - Descargar el binario desde: https://repo.maven.apache.org/maven2/io/qameta/allure/
- Agregar al
PATH - Generar:
allure generate ./results -o ./report --clean - Servir:
allure serve ./results
- Instalar:
# Unittest
python -m unittest test_login.py
# Pytest
pytest -s -v
# Pytest en paralelo
pytest -n 4
# Behave
behave features/- Usá
WebDriverWaiten lugar desleep() - Mantené tus localizadores simples y estables
- Modularizá lo más posible con helpers reutilizables
- Activá entornos virtuales para cada proyecto
- Preferí
pytestobehavesi querés escalar
Este repositorio fue pensado como una caja de herramientas integral para dominar Selenium y sus frameworks complementarios en el mundo Python. Ya sea que estés empezando o quieras mejorar tu flujo de pruebas automatizadas, acá tenés ejemplos reales, modularización, buenas prácticas y tips aplicables a proyectos del mundo real.
La idea no es solo que "funcione", sino que puedas escalar, mantener y entender cada parte de tu suite de tests. Y como siempre digo: el mejor test es el que está tan bien hecho que nadie se da cuenta que existe... porque todo anda bien.
Este trabajo se realizó siguiendo el curso impartido por IBM en Udemy, disponible en: Master: Selenium con Python Test Qa Automation
Para dudas o sugerencias, puedes contactarme a través de Linkedin: Jose Hernandez