Migrar de main() a TestNG: framework Selenium con Java De un main() manual a TestNG con @Test, @BeforeMethod, BaseTest y testng.xml. 5 tests independientes, setup centralizado.
Page Object Model en Selenium con Java: separar Pages de Tests LoginPage, DashboardPage: la Page interactúa con la UI, el Test decide pass/fail. Anatomía completa del patrón POM.
Esperas en Selenium: ImplicitWait vs WebDriverWait vs FluentWait Por qué Thread.sleep arruina tests, cuándo NO usar implicitWait y cómo WebDriverWait sincroniza con el DOM. Decisiones reales.
Localizadores en Selenium: de id a XPath, jerarquía práctica DOM, selector, locator y By: qué es cada cosa y cómo elegir el mejor. Primer test de login real con jerarquía de locators.
Eliminar hardcoding en Selenium: config.properties y DriverManager Centralizar configuración con config.properties y DriverManager. Código real y decisiones para un framework mantenible.
Estructura de proyecto Selenium con Maven y Logback pom.xml, Logback y estructura de carpetas base/pages/utils/test. La base de un framework Selenium organizado.
Por qué borré mi framework de automation y empecé de cero Tenía un framework completo generado con IA. No entendía qué hacía cada pieza. Lo borré y empecé desde cero.
Cómo arreglé los errores 4xx de Bing cuando Cloudflare bloqueaba mi sitio Bing reportaba errores 400-499. Bot Fight Mode, Block AI bots y Browser Integrity Check bloqueaban el crawler. Proceso completo de diagnóstico y solución.
Setup de Selenium + Java + TestNG en IntelliJ: decisiones técnicas Por qué Selenium sobre Cypress, Java sobre Python, TestNG sobre JUnit. Setup completo y primer test ejecutado.