- Introducción a la automatización de pruebas
- Historia y evolución de Selenium
- Arquitectura de Selenium WebDriver
- - Componentes de Selenium WebDriver
- Instalación y configuración del entorno (JDK, Eclipse, Selenium)
- - Instalación del JDK y configuración de JAVA_HOME
- - Instalación y configuración de Selenium WebDriver
- Navegadores compatibles y WebDrivers
- Introducción a la programación orientada a objetos en Java
- Sintaxis básica de Java: variables, operadores y control de flujo
- - Variables de Java
- - Operadores en Java
- - Control de flujo
- Métodos y estructuras de datos (Arrays, Listas, Mapas)
- - Métodos
- - Arrays
- - Listas
- - Mapas
- Manejo de excepciones en Java
- - Tipos de excepciones en Java
- - Uso de bloques try-catch-finally
- Conceptos de clases y objetos
- Librerías y dependencias útiles para Selenium
- Conceptos clave de Selenium WebDriver
- Configuración de WebDriver con diferentes navegadores (Chrome, Firefox, Edge)
- - Google Chrome
- - Mozilla Firefox
- - Microsoft Edge
- Navegación básica (abrir, cerrar y manejar ventanas)
- Identificación de elementos web: localizadores (ID, Name, XPath, CSS Selector)
- - Localizador por ID
- - Localizador por name
- - Localizador por XPath
- - Localizador por CSS Selector
- Interacción con elementos web (click, sendKeys, submit)
- Manejo de alertas, ventanas emergentes y ventanas múltiples
- - Manejo de alertas
- - Manejo de ventanas emergentes
- - Manejo de iframes
- Tipos de esperas: implícitas, explícitas y fluent wait
- - Esperas implícitas
- - Esperas explícitas
- - Fluent wait
- Ejecución de scripts sincrónicos y asincrónicos
- Manejo de ExpectedConditions
- Sincronización en pruebas de aplicaciones web dinámicas (AJAX)
- - Estrategias para manejar contenido dinámico
- - Validación de cambios en la interfaz con ExpectedConditions
- Manejo de cuadros de texto, botones y casillas de verificación
- - Cuadros de texto
- - Botones
- - Casillas de verificación
- Selección de opciones en listas desplegables (Select y deselect)
- Carga de archivos y manejo de diálogos de archivos
- - Carga de archivos mediante sendKeys()
- - Manejo de cuadros de diálogo de archivos en Windows
- Automatización de tablas dinámicas
- Automatización de elementos invisibles o deshabilitados
- Uso de Actions Class para eventos del ratón y teclado
- Arrastrar y soltar (Drag and Drop)
- Simulación de desplazamientos (Scroll)
- Captura de pantallas automáticas durante las pruebas
- Ejecución de JavaScript con Selenium WebDriver
- Introducción a los frameworks de automatización
- - Tipos de frameworks de automatización
- - Integración de frameworks con CI/CD
- Creación de pruebas con JUnit y TestNG
- - JUnit
- - TestNG
- Gestión de dependencias con Maven
- Patrón Page Object Model (POM)
- - Implementación del patrón Page Object Model
- - Optimización con un administrador de páginas (Page Object Manager)
- Implementación de pruebas orientadas a POM
- - Pasos para implementar POM
- - Ejemplo de implementación de POM
- Configuración de pruebas paralelas y secuenciales
- Data-Driven Testing (DDT) con archivos Excel (Apache POI)
- Manejo de JSON y XML como fuentes de datos
- - Lectura de datos desde archivos JSON
- - Parseo de datos XML en Selenium
- - Implementación de pruebas con datos de JSON y XML
- Generación de reportes automáticos con TestNG y Allure
- - Configuración de TestNG para la generación de reportes
- - Integración de Allure Framework
- - Generación y visualización de reportes detallados
- Captura de logs y manejo de errores
- Introducción a la integración continua
- Uso de Jenkins para la ejecución de pruebas automáticas
- Configuración de jobs en Jenkins para Selenium
- - Creación de un trabajo de Maven
- - Configuración de dependencias del proyecto
- - Configuración de informes de pruebas en Jenkins
- Integración de Selenium con sistemas de control de versiones (Git)
- - Configuración de repositorios Git
- - Gestión de credenciales y acceso a repositorios
- Automatización de pruebas en pipelines CI/CD
- Introducción a Selenium Grid
- Configuración de Selenium Grid para pruebas distribuidas
- Ejecución de pruebas en múltiples navegadores y sistemas operativos
- Herramientas para la ejecución de pruebas en la nube (BrowserStack, Sauce Labs)
- Optimización de pruebas en entornos distribuidos
