{"id":23119,"date":"2025-12-29T05:46:29","date_gmt":"2025-12-29T05:46:29","guid":{"rendered":"https:\/\/prometteursolutions.com\/blog\/?p=23119"},"modified":"2025-12-29T05:46:51","modified_gmt":"2025-12-29T05:46:51","slug":"tutorial-de-selenium-para-principiantes-paso-a-paso","status":"publish","type":"post","link":"https:\/\/prometteursolutions.com\/blog\/es\/tutorial-de-selenium-para-principiantes-paso-a-paso\/","title":{"rendered":"Tutorial de Selenium para Principiantes Paso a Paso"},"content":{"rendered":"<div class=\"dad65929\">\n<div class=\"_4f9bf79 d7dc56a8 _43c05b5\">\n<div class=\"ds-message _63c77b1\">\n<div class=\"ds-markdown\">\n<h1>Tutorial de Selenium para Principiantes: Aprende Automatizaci\u00f3n Web Paso a Paso<\/h1>\n<p class=\"ds-markdown-paragraph\">\u00bfSab\u00edas que la\u00a0<strong>automatizaci\u00f3n de pruebas<\/strong>\u00a0puede reducir el tiempo de testing de software hasta en un 70%? Si est\u00e1s buscando aprender una habilidad valiosa, con alta demanda en el mercado tech, est\u00e1s en el lugar correcto. Este\u00a0<strong>tutorial de Selenium para principiantes<\/strong>\u00a0est\u00e1 dise\u00f1ado para guiarte desde el concepto m\u00e1s b\u00e1sico hasta ejecutar tu primer script de\u00a0<strong>automatizaci\u00f3n web<\/strong>, incluso si nunca has escrito una l\u00ednea de c\u00f3digo.\u00a0<strong>Aprender Selenium desde cero<\/strong>\u00a0es m\u00e1s accesible de lo que piensas, y hoy, en Prometteur, te lo demostramos.<\/p>\n<p class=\"ds-markdown-paragraph\"><strong>En esta gu\u00eda completa, cubriremos:<\/strong>\u00a0qu\u00e9 es Selenium y por qu\u00e9 es la herramienta l\u00edder, c\u00f3mo configurar tu\u00a0<strong>entorno de desarrollo<\/strong>\u00a0en minutos, y escribiremos paso a paso un script que automatice una b\u00fasqueda en Google. Al final, no solo entender\u00e1s la teor\u00eda, sino que tendr\u00e1s la confianza para comenzar tu propio proyecto de\u00a0<strong>testing automatizado<\/strong>. Vamos a desmitificar t\u00e9rminos como\u00a0<strong>WebDriver<\/strong>,\u00a0<strong>locators<\/strong>\u00a0y\u00a0<strong>Page Object Model<\/strong>, explic\u00e1ndolos con la simpleza que un verdadero principiantes merece.<\/p>\n<p class=\"ds-markdown-paragraph\"><strong>Minutero de Contenido (1-min Read Preview):<\/strong><br \/>\n*\u00bfQu\u00e9 es Selenium y por qu\u00e9 aprenderlo? \u2192 Configuraci\u00f3n r\u00e1pida en 3 pasos \u2192 Tu primer script de automatizaci\u00f3n \u2192 Localizadores (XPath\/CSS) esenciales \u2192 Esperas y manejo de elementos \u2192 Patr\u00f3n Page Object Model \u2192 Ejecuci\u00f3n multi-navegador \u2192 Siguientes pasos. \u00a1Vamos al c\u00f3digo!*<\/p>\n<h2><strong>Secci\u00f3n 1: \u00bfQu\u00e9 es Selenium y Por Qu\u00e9 Deber\u00edas Aprenderlo?<\/strong><\/h2>\n<h3><strong>Introducci\u00f3n a Selenium: Tu Puerta de Entrada al Testing Automatizado<\/strong><\/h3>\n<p class=\"ds-markdown-paragraph\">Imagina tener un robot infalible que trabaje las 24 horas, repitiendo las mismas acciones en un sitio web una y otra vez, sin cansarse y sin cometer errores por distracci\u00f3n. Eso, en esencia, es lo que hace\u00a0<strong>Selenium<\/strong>. Es un conjunto de herramientas de c\u00f3digo abierto para\u00a0<strong>automatizar navegadores web<\/strong>. Su principal misi\u00f3n es simular la interacci\u00f3n de un usuario real (hacer clics, escribir texto, navegar) para probar que una aplicaci\u00f3n web funciona correctamente, lo que se conoce como\u00a0<strong>pruebas de software<\/strong>\u00a0automatizadas.<\/p>\n<p class=\"ds-markdown-paragraph\">Pero Selenium no es una sola herramienta, es un ecosistema con partes clave que debes conocer desde el principio:<\/p>\n<ul>\n<li>\n<p class=\"ds-markdown-paragraph\"><strong>Selenium IDE:<\/strong>\u00a0Un plugin para Firefox y Chrome que te permite grabar y reproducir tus acciones en el navegador. Es perfecto para empezar sin c\u00f3digo y entender los conceptos b\u00e1sicos. Es como grabar un macro.<\/p>\n<\/li>\n<li>\n<p class=\"ds-markdown-paragraph\"><strong>Selenium WebDriver:<\/strong>\u00a0El coraz\u00f3n de la\u00a0<strong>automatizaci\u00f3n de pruebas<\/strong>. Es una API (Interfaz de Programaci\u00f3n de Aplicaciones) que te permite escribir scripts en lenguajes como Java, Python, C# o JavaScript para controlar el navegador de manera program\u00e1tica. Es la herramienta m\u00e1s poderosa y la que aprenderemos a usar aqu\u00ed.<\/p>\n<\/li>\n<li>\n<p class=\"ds-markdown-paragraph\"><strong>Selenium Grid:<\/strong>\u00a0Te permite ejecutar tus\u00a0<strong>pruebas automatizadas<\/strong>\u00a0en m\u00faltiples m\u00e1quinas y navegadores al mismo tiempo, acelerando el proceso significativamente.<\/p>\n<\/li>\n<\/ul>\n<p class=\"ds-markdown-paragraph\"><strong>\u00bfPor qu\u00e9 aprender Selenium y no otra herramienta?<\/strong><\/p>\n<ol start=\"1\">\n<li>\n<p class=\"ds-markdown-paragraph\"><strong>Es Gratuito y de C\u00f3digo Abierto:<\/strong>\u00a0No hay licencias costosas.<\/p>\n<\/li>\n<li>\n<p class=\"ds-markdown-paragraph\"><strong>Gran Comunidad y Soporte:<\/strong>\u00a0Al ser tan popular, encontrar\u00e1s foros, tutoriales y respuestas a casi cualquier problema.<\/p>\n<\/li>\n<li>\n<p class=\"ds-markdown-paragraph\"><strong>Compatibilidad Multi-lenguaje:<\/strong>\u00a0Puedes usar el lenguaje que ya conoces o quieras aprender (Java y Python son los m\u00e1s populares).<\/p>\n<\/li>\n<li>\n<p class=\"ds-markdown-paragraph\"><strong>Compatibilidad Multi-navegador y Sistema Operativo:<\/strong>\u00a0Funciona en Chrome, Firefox, Edge, Safari, y en Windows, macOS y Linux.<\/p>\n<\/li>\n<\/ol>\n<p class=\"ds-markdown-paragraph\"><strong>Las diferencias principales entre Selenium WebDriver y Selenium IDE<\/strong>\u00a0radican en el poder y la flexibilidad. El IDE es para pruebas r\u00e1pidas y simples (sin c\u00f3digo), mientras que WebDriver es para construir\u00a0<strong>frameworks de pruebas<\/strong>\u00a0robustos, escalables y profesionales. Este\u00a0<strong>tutorial para principiantes<\/strong>\u00a0se enfocar\u00e1 en WebDriver, ya que es la habilidad m\u00e1s solicitada.<\/p>\n<h2><strong>Secci\u00f3n 2: Configuraci\u00f3n Inicial: Todo lo Necesario para Comenzar<\/strong><\/h2>\n<h3><strong>Configuraci\u00f3n de Selenium Paso a Paso: Entorno de Desarrollo<\/strong><\/h3>\n<p class=\"ds-markdown-paragraph\">Antes de escribir nuestro primer\u00a0<strong>script de automatizaci\u00f3n<\/strong>, necesitamos preparar el terreno. Sigue estos pasos meticulosamente. Te recomendamos usar\u00a0<strong>Java<\/strong>\u00a0para este ejemplo, ya que es el lenguaje m\u00e1s com\u00fanmente asociado con Selenium en entornos empresariales.<\/p>\n<h4><strong>Paso 1: Instalaci\u00f3n de Java JDK y Eclipse\/IntelliJ<\/strong><\/h4>\n<ol start=\"1\">\n<li>\n<p class=\"ds-markdown-paragraph\"><strong>Java JDK:<\/strong>\u00a0Ve al sitio de Oracle y descarga el Java Development Kit (JDK). Inst\u00e1lalo y configura la variable de entorno\u00a0<code>JAVA_HOME<\/code>\u00a0en tu sistema. Puedes verificar la instalaci\u00f3n abriendo una terminal o consola y escribiendo\u00a0<code>java -version<\/code>.<\/p>\n<\/li>\n<li>\n<p class=\"ds-markdown-paragraph\"><strong>IDE (Entorno de Desarrollo Integrado):<\/strong>\u00a0Te recomendamos\u00a0<strong>IntelliJ IDEA Community Edition<\/strong>\u00a0(gratuito) o\u00a0<strong>Eclipse<\/strong>. Son editores de c\u00f3digo que facilitan la escritura, depuraci\u00f3n y ejecuci\u00f3n de tu programa. Descarga e instala cualquiera de los dos.<\/p>\n<\/li>\n<\/ol>\n<h4><strong>Paso 2: Descarga e Integraci\u00f3n de Selenium WebDriver<\/strong><\/h4>\n<ol start=\"1\">\n<li>\n<p class=\"ds-markdown-paragraph\"><strong>Administrador de Dependencias (Maven):<\/strong>\u00a0La forma m\u00e1s f\u00e1cil de\u00a0<strong>instalar Selenium<\/strong>\u00a0es usando Maven. En IntelliJ, al crear un nuevo proyecto, selecciona &#8220;Maven&#8221;. Esto crear\u00e1 un archivo\u00a0<code>pom.xml<\/code>.<\/p>\n<\/li>\n<li>\n<p class=\"ds-markdown-paragraph\"><strong>A\u00f1adir Selenium al Proyecto:<\/strong>\u00a0Dentro del archivo\u00a0<code>pom.xml,<\/code>\u00a0busca la secci\u00f3n\u00a0<code>&lt;dependencies&gt;<\/code>\u00a0y a\u00f1ade las siguientes l\u00edneas. Esto le dice a Maven que\u00a0<strong>descargue Selenium<\/strong>\u00a0y sus dependencias autom\u00e1ticamente.<\/p>\n<\/li>\n<\/ol>\n<div class=\"md-code-block md-code-block-light\">\n<div class=\"md-code-block-banner-wrap\">\n<div class=\"md-code-block-banner md-code-block-banner-lite\">\n<div class=\"_121d384\">\n<div class=\"d2a24f03\"><span class=\"d813de27\">xml<\/span><\/div>\n<\/div>\n<\/div>\n<\/div>\n<pre><span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span>dependency<span class=\"token punctuation\">&gt;<\/span><\/span>\r\n    <span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span>groupId<span class=\"token punctuation\">&gt;<\/span><\/span>org.seleniumhq.selenium<span class=\"token tag\"><span class=\"token punctuation\">&lt;\/<\/span>groupId<span class=\"token punctuation\">&gt;<\/span><\/span>\r\n    <span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span>artifactId<span class=\"token punctuation\">&gt;<\/span><\/span>selenium-java<span class=\"token tag\"><span class=\"token punctuation\">&lt;\/<\/span>artifactId<span class=\"token punctuation\">&gt;<\/span><\/span>\r\n    <span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span>version<span class=\"token punctuation\">&gt;<\/span><\/span>4.15.0<span class=\"token tag\"><span class=\"token punctuation\">&lt;\/<\/span>version<span class=\"token punctuation\">&gt;<\/span><\/span> <span class=\"token comment\">&lt;!-- Usa la \u00faltima versi\u00f3n estable --&gt;<\/span>\r\n<span class=\"token tag\"><span class=\"token punctuation\">&lt;\/<\/span>dependency<span class=\"token punctuation\">&gt;<\/span><\/span><\/pre>\n<\/div>\n<ol start=\"3\">\n<li>\n<p class=\"ds-markdown-paragraph\"><strong>Descargar WebDriver del Navegador:<\/strong>\u00a0Necesitas un controlador espec\u00edfico para el navegador que quieras automatizar (ej.,\u00a0<code>chromedriver<\/code>\u00a0para Chrome). Desc\u00e1rgalo desde el sitio oficial y guarda el ejecutable en una carpeta conocida de tu computadora. Luego, en tu c\u00f3digo, deber\u00e1s indicar la ruta a este archivo.<\/p>\n<\/li>\n<\/ol>\n<p class=\"ds-markdown-paragraph\"><strong>Caja de Consejo SEO:<\/strong>\u00a0<em>\u00bfBuscas configurar Selenium en Python? Visita nuestra gu\u00eda espec\u00edfica para Selenium con Python donde explicamos el proceso con\u00a0<code>pip<\/code>\u00a0y virtualenv.<\/em><\/p>\n<h4><strong>Paso 3: Configuraci\u00f3n de Proyecto Maven<\/strong><\/h4>\n<p class=\"ds-markdown-paragraph\">Si seguiste el paso anterior, tu proyecto Maven ya est\u00e1 casi listo. IntelliJ\/Eclipse leer\u00e1 el\u00a0<code>pom.xml<\/code>\u00a0y descargar\u00e1 todo lo necesario. Este m\u00e9todo es mucho m\u00e1s limpio que descargar archivos JAR manualmente y es una\u00a0<strong>mejor pr\u00e1ctica<\/strong>\u00a0en el\u00a0<strong>desarrollo de software<\/strong>.<\/p>\n<h2><strong>Secci\u00f3n 3: Tu Primer Script de Automatizaci\u00f3n: \u00a1Hola Mundo!<\/strong><\/h2>\n<h3><strong>Primer Script Selenium: Automatizando una B\u00fasqueda en Google<\/strong><\/h3>\n<p class=\"ds-markdown-paragraph\">Lleg\u00f3 el momento de la verdad. Vamos a escribir un\u00a0<strong>ejemplo pr\u00e1ctico de Selenium<\/strong>\u00a0que todos entender\u00e1n: automatizar una b\u00fasqueda en Google. Este es el equivalente al &#8220;Hola Mundo&#8221; en la\u00a0<strong>automatizaci\u00f3n web<\/strong>.<\/p>\n<div class=\"md-code-block md-code-block-light\">\n<div class=\"md-code-block-banner-wrap\">\n<div class=\"md-code-block-banner md-code-block-banner-lite\">\n<div class=\"_121d384\">\n<div class=\"d2a24f03\"><span class=\"d813de27\">java<\/span><\/div>\n<\/div>\n<\/div>\n<\/div>\n<pre><span class=\"token keyword\">import<\/span> <span class=\"token import\"><span class=\"token namespace\">org<span class=\"token punctuation\">.<\/span>openqa<span class=\"token punctuation\">.<\/span>selenium<span class=\"token punctuation\">.<\/span><\/span><span class=\"token class-name\">By<\/span><\/span><span class=\"token punctuation\">;<\/span>\r\n<span class=\"token keyword\">import<\/span> <span class=\"token import\"><span class=\"token namespace\">org<span class=\"token punctuation\">.<\/span>openqa<span class=\"token punctuation\">.<\/span>selenium<span class=\"token punctuation\">.<\/span><\/span><span class=\"token class-name\">WebDriver<\/span><\/span><span class=\"token punctuation\">;<\/span>\r\n<span class=\"token keyword\">import<\/span> <span class=\"token import\"><span class=\"token namespace\">org<span class=\"token punctuation\">.<\/span>openqa<span class=\"token punctuation\">.<\/span>selenium<span class=\"token punctuation\">.<\/span><\/span><span class=\"token class-name\">WebElement<\/span><\/span><span class=\"token punctuation\">;<\/span>\r\n<span class=\"token keyword\">import<\/span> <span class=\"token import\"><span class=\"token namespace\">org<span class=\"token punctuation\">.<\/span>openqa<span class=\"token punctuation\">.<\/span>selenium<span class=\"token punctuation\">.<\/span>chrome<span class=\"token punctuation\">.<\/span><\/span><span class=\"token class-name\">ChromeDriver<\/span><\/span><span class=\"token punctuation\">;<\/span>\r\n\r\n<span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">PrimerScriptSelenium<\/span> <span class=\"token punctuation\">{<\/span>\r\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">main<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">String<\/span><span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span> args<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span>\r\n        <span class=\"token comment\">\/\/ 1. Establecer la ruta del ChromeDriver (WebDriver)<\/span>\r\n        <span class=\"token class-name\">System<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">setProperty<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"webdriver.chrome.driver\"<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">\"ruta\/a\/tu\/chromedriver.exe\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n\r\n        <span class=\"token comment\">\/\/ 2. Inicializar el navegador (Chrome)<\/span>\r\n        <span class=\"token class-name\">WebDriver<\/span> driver <span class=\"token operator\">=<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">ChromeDriver<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n\r\n        <span class=\"token comment\">\/\/ 3. Navegar a Google.com<\/span>\r\n        driver<span class=\"token punctuation\">.<\/span><span class=\"token function\">get<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"https:\/\/www.google.com\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n\r\n        <span class=\"token comment\">\/\/ 4. Localizar la barra de b\u00fasqueda. Usamos su 'name' como localizador.<\/span>\r\n        <span class=\"token class-name\">WebElement<\/span> barraBusqueda <span class=\"token operator\">=<\/span> driver<span class=\"token punctuation\">.<\/span><span class=\"token function\">findElement<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">By<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">name<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"q\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n\r\n        <span class=\"token comment\">\/\/ 5. Escribir \"Selenium tutorial\" en la barra<\/span>\r\n        barraBusqueda<span class=\"token punctuation\">.<\/span><span class=\"token function\">sendKeys<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"Selenium tutorial para principiantes\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n\r\n        <span class=\"token comment\">\/\/ 6. Simular presionar ENTER (enviar la b\u00fasqueda)<\/span>\r\n        barraBusqueda<span class=\"token punctuation\">.<\/span><span class=\"token function\">submit<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n\r\n        <span class=\"token comment\">\/\/ 7. Verificaci\u00f3n simple: comprobar que el t\u00edtulo de la p\u00e1gina contiene la palabra \"Selenium\"<\/span>\r\n        <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>driver<span class=\"token punctuation\">.<\/span><span class=\"token function\">getTitle<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">contains<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"Selenium\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span>\r\n            <span class=\"token class-name\">System<\/span><span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"\u00a1Prueba exitosa! La b\u00fasqueda funcion\u00f3.\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n        <span class=\"token punctuation\">}<\/span> <span class=\"token keyword\">else<\/span> <span class=\"token punctuation\">{<\/span>\r\n            <span class=\"token class-name\">System<\/span><span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"Algo sali\u00f3 mal.\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n        <span class=\"token punctuation\">}<\/span>\r\n\r\n        <span class=\"token comment\">\/\/ 8. Esperar unos segundos para ver el resultado y cerrar el navegador<\/span>\r\n        <span class=\"token class-name\">Thread<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">sleep<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">3000<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n        driver<span class=\"token punctuation\">.<\/span><span class=\"token function\">quit<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n    <span class=\"token punctuation\">}<\/span>\r\n<span class=\"token punctuation\">}<\/span><\/pre>\n<\/div>\n<p class=\"ds-markdown-paragraph\"><strong>Explicaci\u00f3n Paso a Paso para Principiantes:<\/strong><\/p>\n<ol start=\"1\">\n<li>\n<p class=\"ds-markdown-paragraph\"><strong>Importar Paquetes:<\/strong>\u00a0Traemos las clases necesarias de la biblioteca Selenium.<\/p>\n<\/li>\n<li>\n<p class=\"ds-markdown-paragraph\"><strong>Configurar WebDriver:<\/strong>\u00a0Le decimos al programa d\u00f3nde est\u00e1 el controlador (<code>chromedriver<\/code>) que comunica Selenium con Chrome.<\/p>\n<\/li>\n<li>\n<p class=\"ds-markdown-paragraph\"><strong>Abrir Navegador:<\/strong>\u00a0La l\u00ednea\u00a0<code>new ChromeDriver()<\/code>\u00a0abre una nueva ventana de Chrome.<\/p>\n<\/li>\n<li>\n<p class=\"ds-markdown-paragraph\"><strong>Navegar a una URL:<\/strong>\u00a0<code>driver.get()<\/code>\u00a0lleva al navegador a la p\u00e1gina que indiques.<\/p>\n<\/li>\n<li>\n<p class=\"ds-markdown-paragraph\"><strong>Localizar un Elemento:<\/strong>\u00a0<code>driver.findElement(By.name(\"q\"))<\/code>\u00a0encuentra la barra de b\u00fasqueda de Google. El\u00a0<code>name=\"q\"<\/code>\u00a0es un\u00a0<strong>localizador<\/strong>\u00a0(lo veremos despu\u00e9s).<\/p>\n<\/li>\n<li>\n<p class=\"ds-markdown-paragraph\"><strong>Interactuar:<\/strong>\u00a0<code>sendKeys()<\/code>\u00a0escribe texto.\u00a0<code>submit()<\/code>\u00a0env\u00eda el formulario (como presionar Enter).<\/p>\n<\/li>\n<li>\n<p class=\"ds-markdown-paragraph\"><strong>Assert y Verify:<\/strong>\u00a0Hacemos una verificaci\u00f3n b\u00e1sica (<code>assert<\/code>\u00a0impl\u00edcito) comprobando el t\u00edtulo de la p\u00e1gina. En pruebas reales, usar\u00edas bibliotecas como JUnit o TestNG para\u00a0<strong>assert y verify<\/strong>.<\/p>\n<\/li>\n<li>\n<p class=\"ds-markdown-paragraph\"><strong>Cerrar:<\/strong>\u00a0<code>driver.quit()<\/code>\u00a0cierra el navegador y finaliza la sesi\u00f3n.<\/p>\n<\/li>\n<\/ol>\n<p class=\"ds-markdown-paragraph\"><strong>\u00a1Felicidades!<\/strong>\u00a0Acabas de ejecutar tu primera\u00a0<strong>prueba automatizada<\/strong>. El navegador se abri\u00f3, fue a Google, busc\u00f3 &#8220;Selenium tutorial&#8221; y te mostr\u00f3 los resultados, todo sin que t\u00fa tocaras el teclado. Esta es la magia de\u00a0<strong>aprender Selenium desde cero<\/strong>.<\/p>\n<h2><strong>Secci\u00f3n 4: Localizadores (Locators): C\u00f3mo Encontrar Elementos Web<\/strong><\/h2>\n<h3><strong>Localizadores Selenium: XPath y CSS Selector para Principiantes<\/strong><\/h3>\n<p class=\"ds-markdown-paragraph\">Para que Selenium pueda hacer clic en un bot\u00f3n o escribir en un campo, primero necesita &#8220;verlo&#8221; en la p\u00e1gina. Los\u00a0<strong>localizadores<\/strong>\u00a0son las direcciones que le damos para encontrar esos elementos. Es una de las habilidades m\u00e1s cr\u00edticas en la\u00a0<strong>automatizaci\u00f3n de pruebas<\/strong>.<\/p>\n<p class=\"ds-markdown-paragraph\"><strong>Tipos B\u00e1sicos vs. Avanzados:<\/strong><\/p>\n<ul>\n<li>\n<p class=\"ds-markdown-paragraph\"><strong>B\u00e1sicos (ID, Name, ClassName):<\/strong>\u00a0Son los m\u00e1s sencillos y r\u00e1pidos si est\u00e1n disponibles.<\/p>\n<ul>\n<li>\n<p class=\"ds-markdown-paragraph\"><code>By.id(\"login-button\")<\/code><\/p>\n<\/li>\n<li>\n<p class=\"ds-markdown-paragraph\"><code>By.name(\"usuario\")<\/code><\/p>\n<\/li>\n<li>\n<p class=\"ds-markdown-paragraph\"><code>By.className(\"btn-primary\")<\/code><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p class=\"ds-markdown-paragraph\"><strong>Avanzados (XPath, CSS Selector):<\/strong>\u00a0Son m\u00e1s flexibles y potentes, permiten encontrar cualquier elemento, incluso sin ID o clase \u00fanica.<\/p>\n<ul>\n<li>\n<p class=\"ds-markdown-paragraph\"><code>By.xpath(\"\/\/button[@type='submit']\")<\/code><\/p>\n<\/li>\n<li>\n<p class=\"ds-markdown-paragraph\"><code>By.cssSelector(\"input.form-control[placeholder='Email']\")<\/code><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p class=\"ds-markdown-paragraph\"><strong>Sintaxis B\u00e1sica de XPath con Ejemplos:<\/strong><br \/>\nXPath es como un GPS para navegar por la estructura HTML (el &#8220;esqueleto&#8221;) de una p\u00e1gina.<\/p>\n<ul>\n<li>\n<p class=\"ds-markdown-paragraph\"><code>\/\/tag[@atributo='valor']<\/code>: Busca cualquier elemento\u00a0<code>tag<\/code>\u00a0que tenga el\u00a0<code>atributo<\/code>\u00a0con ese\u00a0<code>valor<\/code>.<\/p>\n<ul>\n<li>\n<p class=\"ds-markdown-paragraph\">Ej:\u00a0<code>\/\/input[@id='search']<\/code>\u00a0encuentra el campo de entrada con\u00a0<code>id=\"search\"<\/code>.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p class=\"ds-markdown-paragraph\"><code>\/\/tag[contains(text(), 'parte del texto')]<\/code>: Busca un elemento cuyo texto contenga ciertas palabras.<\/p>\n<ul>\n<li>\n<p class=\"ds-markdown-paragraph\">Ej:\u00a0<code>\/\/a[contains(text(), 'Iniciar Sesi\u00f3n')]<\/code>\u00a0encuentra un enlace que diga &#8220;Iniciar Sesi\u00f3n&#8221;.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p class=\"ds-markdown-paragraph\"><strong>Selectores CSS M\u00e1s Comunes:<\/strong><br \/>\nLos selectores CSS son muy similares a los que se usan para dar estilo a las p\u00e1ginas.<\/p>\n<ul>\n<li>\n<p class=\"ds-markdown-paragraph\"><code>tag#id<\/code>: Busca un\u00a0<code>tag<\/code>\u00a0con un\u00a0<code>id<\/code>\u00a0espec\u00edfico. Ej:\u00a0<code>input#email<\/code><\/p>\n<\/li>\n<li>\n<p class=\"ds-markdown-paragraph\"><code>tag.clase<\/code>: Busca un\u00a0<code>tag<\/code>\u00a0con una\u00a0<code>clase<\/code>\u00a0espec\u00edfica. Ej:\u00a0<code>button.btn-success<\/code><\/p>\n<\/li>\n<li>\n<p class=\"ds-markdown-paragraph\"><code>tag[atributo='valor']<\/code>: Busca por atributo. Ej:\u00a0<code>a[href='\/logout']<\/code><\/p>\n<\/li>\n<\/ul>\n<p class=\"ds-markdown-paragraph\"><strong>Tabla Comparativa: XPath vs CSS Selector<\/strong><\/p>\n<div class=\"ds-scroll-area _1210dd7 c03cafe9\">\n<div class=\"ds-scroll-area__gutters\">\n<div class=\"ds-scroll-area__horizontal-gutter\"><\/div>\n<div class=\"ds-scroll-area__vertical-gutter\"><\/div>\n<\/div>\n<table>\n<thead>\n<tr>\n<th>Caracter\u00edstica<\/th>\n<th>XPath<\/th>\n<th>CSS Selector<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Velocidad<\/strong><\/td>\n<td>Ligeramente m\u00e1s lento en algunos navegadores<\/td>\n<td>Generalmente m\u00e1s r\u00e1pido<\/td>\n<\/tr>\n<tr>\n<td><strong>Flexibilidad<\/strong><\/td>\n<td>Muy flexible. Puede navegar hacia arriba y abajo en el HTML.<\/td>\n<td>Flexible, pero no puede navegar hacia elementos padre.<\/td>\n<\/tr>\n<tr>\n<td><strong>Legibilidad<\/strong><\/td>\n<td>Puede volverse complejo en rutas largas<\/td>\n<td>Suele ser m\u00e1s conciso y f\u00e1cil de leer<\/td>\n<\/tr>\n<tr>\n<td><strong>Recomendaci\u00f3n<\/strong><\/td>\n<td>Ideal cuando necesitas buscar por texto o navegar la estructura.<\/td>\n<td>Ideal para la mayor\u00eda de los casos, especialmente con ID y clases.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p class=\"ds-markdown-paragraph\"><strong>Aprender a usar XPath en Selenium para localizar elementos<\/strong>\u00a0es fundamental, pero siempre prefiere los localizadores m\u00e1s simples y estables primero (ID, name).<\/p>\n<h2><strong>Secci\u00f3n 5: Esperas (Waits): Manejo de Tiempos y Sincronizaci\u00f3n<\/strong><\/h2>\n<h3><strong>Manejo de Esperas en Selenium: Implicit vs Explicit Wait<\/strong><\/h3>\n<p class=\"ds-markdown-paragraph\">Uno de los errores m\u00e1s comunes para los\u00a0<strong>principiantes<\/strong>\u00a0es que su script falle porque intenta hacer clic en un bot\u00f3n que a\u00fan no ha terminado de cargar. Las\u00a0<strong>esperas<\/strong>\u00a0(waits) solucionan este problema de sincronizaci\u00f3n entre la velocidad de tu script y la velocidad de carga de la p\u00e1gina.<\/p>\n<ul>\n<li>\n<p class=\"ds-markdown-paragraph\"><strong>Implicit Wait (Espera Impl\u00edcita):<\/strong>\u00a0Le dices a Selenium que, si no encuentra un elemento inmediatamente, espere un tiempo m\u00e1ximo determinado\u00a0<em>antes de dar un error<\/em>. Se configura una vez y aplica a todos los\u00a0<code>findElement<\/code>\u00a0siguientes.<\/p>\n<div class=\"md-code-block md-code-block-light\">\n<div class=\"md-code-block-banner-wrap\">\n<div class=\"md-code-block-banner md-code-block-banner-lite\">\n<div class=\"_121d384\">\n<div class=\"d2a24f03\"><span class=\"d813de27\">java<\/span><\/div>\n<\/div>\n<\/div>\n<\/div>\n<pre>driver<span class=\"token punctuation\">.<\/span><span class=\"token function\">manage<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">timeouts<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">implicitlyWait<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">Duration<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">ofSeconds<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">10<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/pre>\n<\/div>\n<\/li>\n<li>\n<p class=\"ds-markdown-paragraph\"><strong>Explicit Wait (Espera Expl\u00edcita):<\/strong>\u00a0Es m\u00e1s inteligente y espec\u00edfica. Le dices a Selenium que espere\u00a0<em>hasta que<\/em>\u00a0ocurra una condici\u00f3n espec\u00edfica (ej: que un elemento sea clickeable, visible, etc.). Es la\u00a0<strong>mejor pr\u00e1ctica<\/strong>.<\/p>\n<div class=\"md-code-block md-code-block-light\">\n<div class=\"md-code-block-banner-wrap\">\n<div class=\"md-code-block-banner md-code-block-banner-lite\">\n<div class=\"_121d384\">\n<div class=\"d2a24f03\"><span class=\"d813de27\">java<\/span><\/div>\n<\/div>\n<\/div>\n<\/div>\n<pre><span class=\"token class-name\">WebDriverWait<\/span> wait <span class=\"token operator\">=<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">WebDriverWait<\/span><span class=\"token punctuation\">(<\/span>driver<span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">Duration<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">ofSeconds<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">10<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n<span class=\"token class-name\">WebElement<\/span> boton <span class=\"token operator\">=<\/span> wait<span class=\"token punctuation\">.<\/span><span class=\"token function\">until<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">ExpectedConditions<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">elementToBeClickable<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">By<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">id<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"miBoton\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\nboton<span class=\"token punctuation\">.<\/span><span class=\"token function\">click<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/pre>\n<\/div>\n<\/li>\n<\/ul>\n<p class=\"ds-markdown-paragraph\"><strong>\u00bfCu\u00e1ndo usar cada una?<\/strong>\u00a0Usa\u00a0<strong>Implicit Wait<\/strong>\u00a0con moderaci\u00f3n (unos pocos segundos) como red de seguridad general. Usa\u00a0<strong>Explicit Wait<\/strong>\u00a0para interactuar con elementos din\u00e1micos que sabes que tardan en cargar. Un buen manejo de\u00a0<strong>esperas<\/strong>\u00a0tambi\u00e9n te ayudar\u00e1 con el\u00a0<strong>manejo de alertas y pop-ups en Selenium WebDriver<\/strong>, ya que puedes esperar a que aparezcan antes de interactuar con ellas.<\/p>\n<h2><strong>Secci\u00f3n 6: Page Object Model (POM): Mejores Pr\u00e1cticas<\/strong><\/h2>\n<h3><strong>Introducci\u00f3n al Page Object Model: Estructura Profesional<\/strong><\/h3>\n<p class=\"ds-markdown-paragraph\">Imagina que tienes 50\u00a0<strong>pruebas automatizadas<\/strong>\u00a0y de repente, el desarrollador cambia el\u00a0<code>id<\/code>\u00a0del bot\u00f3n de login en la p\u00e1gina web. \u00bfTienes que cambiar ese\u00a0<code>id<\/code>\u00a0en 50 scripts diferentes? Eso ser\u00eda una pesadilla de mantenimiento. El\u00a0<strong>Page Object Model (POM)<\/strong>\u00a0es un patr\u00f3n de dise\u00f1o que resuelve este problema.<\/p>\n<p class=\"ds-markdown-paragraph\">La idea es simple:\u00a0<strong>Crea una clase Java para cada p\u00e1gina de tu aplicaci\u00f3n web<\/strong>. Esa clase hace dos cosas:<\/p>\n<ol start=\"1\">\n<li>\n<p class=\"ds-markdown-paragraph\"><strong>Contiene los Localizadores:<\/strong>\u00a0Todos los\u00a0<code>By.id<\/code>,\u00a0<code>By.xpath<\/code>, etc., de los elementos de esa p\u00e1gina.<\/p>\n<\/li>\n<li>\n<p class=\"ds-markdown-paragraph\"><strong>Contiene las Acciones:<\/strong>\u00a0M\u00e9todos que representan lo que un usuario puede hacer en esa p\u00e1gina (<code>hacerLogin(String usuario, String pass)<\/code>,\u00a0<code>buscarProducto(String nombre)<\/code>).<\/p>\n<\/li>\n<\/ol>\n<p class=\"ds-markdown-paragraph\"><strong>Ejemplo Simplificado de POM:<\/strong><\/p>\n<div class=\"md-code-block md-code-block-light\">\n<div class=\"md-code-block-banner-wrap\">\n<div class=\"md-code-block-banner md-code-block-banner-lite\">\n<div class=\"_121d384\">\n<div class=\"d2a24f03\"><span class=\"d813de27\">java<\/span><\/div>\n<\/div>\n<\/div>\n<\/div>\n<pre><span class=\"token comment\">\/\/ Clase para la p\u00e1gina de Login (LoginPage.java)<\/span>\r\n<span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">LoginPage<\/span> <span class=\"token punctuation\">{<\/span>\r\n    <span class=\"token class-name\">WebDriver<\/span> driver<span class=\"token punctuation\">;<\/span>\r\n\r\n    <span class=\"token comment\">\/\/ 1. Localizadores<\/span>\r\n    <span class=\"token class-name\">By<\/span> campoUsuario <span class=\"token operator\">=<\/span> <span class=\"token class-name\">By<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">id<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"username\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n    <span class=\"token class-name\">By<\/span> campoPass <span class=\"token operator\">=<\/span> <span class=\"token class-name\">By<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">id<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"password\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n    <span class=\"token class-name\">By<\/span> botonLogin <span class=\"token operator\">=<\/span> <span class=\"token class-name\">By<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">id<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"loginBtn\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n\r\n    <span class=\"token comment\">\/\/ Constructor<\/span>\r\n    <span class=\"token keyword\">public<\/span> <span class=\"token class-name\">LoginPage<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">WebDriver<\/span> driver<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span>\r\n        <span class=\"token keyword\">this<\/span><span class=\"token punctuation\">.<\/span>driver <span class=\"token operator\">=<\/span> driver<span class=\"token punctuation\">;<\/span>\r\n    <span class=\"token punctuation\">}<\/span>\r\n\r\n    <span class=\"token comment\">\/\/ 2. Acciones\/M\u00e9todos<\/span>\r\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">escribirUsuario<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">String<\/span> usuario<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span>\r\n        driver<span class=\"token punctuation\">.<\/span><span class=\"token function\">findElement<\/span><span class=\"token punctuation\">(<\/span>campoUsuario<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">sendKeys<\/span><span class=\"token punctuation\">(<\/span>usuario<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n    <span class=\"token punctuation\">}<\/span>\r\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">escribirPassword<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">String<\/span> pass<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span>\r\n        driver<span class=\"token punctuation\">.<\/span><span class=\"token function\">findElement<\/span><span class=\"token punctuation\">(<\/span>campoPass<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">sendKeys<\/span><span class=\"token punctuation\">(<\/span>pass<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n    <span class=\"token punctuation\">}<\/span>\r\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">clickLogin<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span>\r\n        driver<span class=\"token punctuation\">.<\/span><span class=\"token function\">findElement<\/span><span class=\"token punctuation\">(<\/span>botonLogin<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">click<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n    <span class=\"token punctuation\">}<\/span>\r\n\r\n    <span class=\"token comment\">\/\/ M\u00e9todo que agrupa acciones comunes<\/span>\r\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">hacerLogin<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">String<\/span> usuario<span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">String<\/span> pass<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span>\r\n        <span class=\"token function\">escribirUsuario<\/span><span class=\"token punctuation\">(<\/span>usuario<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n        <span class=\"token function\">escribirPassword<\/span><span class=\"token punctuation\">(<\/span>pass<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n        <span class=\"token function\">clickLogin<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n    <span class=\"token punctuation\">}<\/span>\r\n<span class=\"token punctuation\">}<\/span><\/pre>\n<\/div>\n<p class=\"ds-markdown-paragraph\">Luego, en tu script de prueba, usas esta clase:<\/p>\n<div class=\"md-code-block md-code-block-light\">\n<div class=\"md-code-block-banner-wrap\">\n<div class=\"md-code-block-banner md-code-block-banner-lite\">\n<div class=\"_121d384\">\n<div class=\"d2a24f03\"><span class=\"d813de27\">java<\/span><\/div>\n<\/div>\n<\/div>\n<\/div>\n<pre><span class=\"token class-name\">LoginPage<\/span> paginaLogin <span class=\"token operator\">=<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">LoginPage<\/span><span class=\"token punctuation\">(<\/span>driver<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\npaginaLogin<span class=\"token punctuation\">.<\/span><span class=\"token function\">hacerLogin<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"miUsuario\"<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">\"miPass123\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/pre>\n<\/div>\n<p class=\"ds-markdown-paragraph\"><strong>Ventajas del POM:<\/strong><\/p>\n<ul>\n<li>\n<p class=\"ds-markdown-paragraph\"><strong>Mantenimiento F\u00e1cil:<\/strong>\u00a0Si cambia un localizador, solo lo modificas en UN lugar.<\/p>\n<\/li>\n<li>\n<p class=\"ds-markdown-paragraph\"><strong>C\u00f3digo Reutilizable:<\/strong>\u00a0Los m\u00e9todos de acci\u00f3n se usan en m\u00faltiples pruebas.<\/p>\n<\/li>\n<li>\n<p class=\"ds-markdown-paragraph\"><strong>Legibilidad:<\/strong>\u00a0Tu script de prueba se lee como un caso de prueba en lenguaje natural.<\/p>\n<\/li>\n<li>\n<p class=\"ds-markdown-paragraph\"><strong>Separaci\u00f3n de Intereses:<\/strong>\u00a0El &#8220;qu\u00e9 probar&#8221; (el script) est\u00e1 separado del &#8220;c\u00f3mo interactuar con la p\u00e1gina&#8221; (la clase POM).<\/p>\n<\/li>\n<\/ul>\n<p class=\"ds-markdown-paragraph\">Esta es la base para construir un\u00a0<strong>framework de pruebas<\/strong>\u00a0s\u00f3lido y profesional.<\/p>\n<h2><strong>Secci\u00f3n 7: Testing Multi-Navegador y Headless<\/strong><\/h2>\n<h3><strong>Cross-Browser Testing: Chrome, Firefox, Edge<\/strong><\/h3>\n<p class=\"ds-markdown-paragraph\">Tu aplicaci\u00f3n web no solo se ve en Chrome. Los usuarios est\u00e1n en Firefox, Safari y Edge.\u00a0<strong>Cross-browser testing<\/strong>\u00a0(pruebas multi-navegador) con Selenium es incre\u00edblemente sencilla, gracias a que\u00a0<strong>WebDriver<\/strong>\u00a0tiene versiones para cada uno.<\/p>\n<p class=\"ds-markdown-paragraph\"><strong>Configuraci\u00f3n B\u00e1sica para 3 Navegadores:<\/strong><br \/>\nSimplemente, inicializas el\u00a0<code>WebDriver<\/code>\u00a0correspondiente. Aseg\u00farate de tener el controlador descargado (<code>geckodriver<\/code>\u00a0para Firefox,\u00a0<code>msedgedriver<\/code>\u00a0para Edge).<\/p>\n<div class=\"md-code-block md-code-block-light\">\n<div class=\"md-code-block-banner-wrap\">\n<div class=\"md-code-block-banner md-code-block-banner-lite\">\n<div class=\"_121d384\">\n<div class=\"d2a24f03\"><span class=\"d813de27\">java<\/span><\/div>\n<\/div>\n<\/div>\n<\/div>\n<pre><span class=\"token comment\">\/\/ Para Firefox<\/span>\r\n<span class=\"token class-name\">WebDriver<\/span> driverFirefox <span class=\"token operator\">=<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">FirefoxDriver<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n\r\n<span class=\"token comment\">\/\/ Para Microsoft Edge<\/span>\r\n<span class=\"token class-name\">WebDriver<\/span> driverEdge <span class=\"token operator\">=<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">EdgeDriver<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n\r\n<span class=\"token comment\">\/\/ Para Chrome (ya lo vimos)<\/span>\r\n<span class=\"token class-name\">WebDriver<\/span> driverChrome <span class=\"token operator\">=<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">ChromeDriver<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/pre>\n<\/div>\n<p class=\"ds-markdown-paragraph\"><strong>\u00bfY qu\u00e9 es Headless Testing?<\/strong>\u00a0Es ejecutar tus\u00a0<strong>pruebas automatizadas<\/strong>\u00a0<em>sin<\/em>\u00a0que se abra una ventana gr\u00e1fica del navegador. Todo ocurre en segundo plano. Es mucho m\u00e1s r\u00e1pido y consume menos recursos, ideal para ejecutar en servidores (como en un pipeline de CI\/CD).<\/p>\n<div class=\"md-code-block md-code-block-light\">\n<div class=\"md-code-block-banner-wrap\">\n<div class=\"md-code-block-banner md-code-block-banner-lite\">\n<div class=\"_121d384\">\n<div class=\"d2a24f03\"><span class=\"d813de27\">java<\/span><\/div>\n<\/div>\n<\/div>\n<\/div>\n<pre><span class=\"token class-name\">ChromeOptions<\/span> opciones <span class=\"token operator\">=<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">ChromeOptions<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\nopciones<span class=\"token punctuation\">.<\/span><span class=\"token function\">addArguments<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"--headless\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token comment\">\/\/ \u00a1Modo sin cabeza!<\/span>\r\n<span class=\"token class-name\">WebDriver<\/span> driver <span class=\"token operator\">=<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">ChromeDriver<\/span><span class=\"token punctuation\">(<\/span>opciones<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\ndriver<span class=\"token punctuation\">.<\/span><span class=\"token function\">get<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"https:\/\/google.com\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token comment\">\/\/ Esto ocurre, pero no lo ves.<\/span>\r\n<span class=\"token class-name\">System<\/span><span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span>driver<span class=\"token punctuation\">.<\/span><span class=\"token function\">getTitle<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token comment\">\/\/ Pero a\u00fan puedes obtener los resultados.<\/span><\/pre>\n<\/div>\n<p class=\"ds-markdown-paragraph\"><strong>C\u00f3mo ejecutar pruebas en m\u00faltiples navegadores con Selenium<\/strong>\u00a0de forma organizada suele hacerse combinando este conocimiento con herramientas como\u00a0<strong>TestNG<\/strong>\u00a0(para parametrizar pruebas) o\u00a0<strong>Selenium Grid<\/strong>\u00a0(para distribuir la ejecuci\u00f3n).<\/p>\n<h2><strong>Secci\u00f3n 8: Proyecto Final Integrado<\/strong><\/h2>\n<h3><strong>Proyecto Final: Automatizaci\u00f3n Completa de un Flujo Web<\/strong><\/h3>\n<p class=\"ds-markdown-paragraph\">Pongamos en pr\u00e1ctica todo lo aprendido con un escenario integrado com\u00fan:\u00a0<strong>Automatizar la compra en una tienda web de demostraci\u00f3n<\/strong>.<\/p>\n<ol start=\"1\">\n<li>\n<p class=\"ds-markdown-paragraph\"><strong>Login:<\/strong>\u00a0Usar el\u00a0<strong>Page Object Model<\/strong>\u00a0para la p\u00e1gina de login.<\/p>\n<\/li>\n<li>\n<p class=\"ds-markdown-paragraph\"><strong>B\u00fasqueda:<\/strong>\u00a0Localizar la barra de b\u00fasqueda (usando\u00a0<strong>CSS Selector<\/strong>) y buscar un producto.<\/p>\n<\/li>\n<li>\n<p class=\"ds-markdown-paragraph\"><strong>A\u00f1adir al Carrito:<\/strong>\u00a0En la lista de resultados, hacer clic en un producto y luego en el bot\u00f3n &#8220;A\u00f1adir al carrito&#8221; (necesitar\u00e1s\u00a0<strong>Explicit Wait<\/strong>\u00a0para que el bot\u00f3n est\u00e9 listo).<\/p>\n<\/li>\n<li>\n<p class=\"ds-markdown-paragraph\"><strong>Checkout:<\/strong>\u00a0Ir al carrito y proceder al pago (verificando precios con\u00a0<strong>assert<\/strong>).<\/p>\n<\/li>\n<\/ol>\n<p class=\"ds-markdown-paragraph\">Este mini-proyecto te obligar\u00e1 a usar\u00a0<strong>localizadores<\/strong>\u00a0variados,\u00a0<strong>esperas inteligentes<\/strong>, el patr\u00f3n\u00a0<strong>POM<\/strong>\u00a0y\u00a0<strong>verificaciones<\/strong>. Es el ejercicio perfecto para consolidar tu aprendizaje de este\u00a0<strong>tutorial de Selenium para principiantes<\/strong>.<\/p>\n<h2><strong>Conclusi\u00f3n: Siguientes Pasos en tu Journey con Selenium<\/strong><\/h2>\n<h3><strong>Conclusi\u00f3n: De Principiante a Automatizador<\/strong><\/h3>\n<p class=\"ds-markdown-paragraph\">Has recorrido un gran camino. Comenzaste sin saber qu\u00e9 era\u00a0<strong>Selenium<\/strong>\u00a0y ahora comprendes sus componentes clave, has configurado tu\u00a0<strong>entorno de desarrollo<\/strong>, ejecutado tu primer\u00a0<strong>script de automatizaci\u00f3n<\/strong>, dominado\u00a0<strong>localizadores<\/strong>\u00a0y\u00a0<strong>esperas<\/strong>, y conocido patrones avanzados como el\u00a0<strong>Page Object Model<\/strong>. La\u00a0<strong>automatizaci\u00f3n de pruebas<\/strong>\u00a0ya no es un concepto abstracto, sino una habilidad pr\u00e1ctica que est\u00e1s comenzando a dominar.<\/p>\n<p class=\"ds-markdown-paragraph\"><strong>Para continuar tu aprendizaje, te recomendamos:<\/strong><\/p>\n<ol start=\"1\">\n<li>\n<p class=\"ds-markdown-paragraph\"><strong>Profundizar en un Framework:<\/strong>\u00a0Aprende\u00a0<strong>TestNG<\/strong>\u00a0o\u00a0<strong>JUnit<\/strong>\u00a0(para Java) o\u00a0<strong>pytest<\/strong>\u00a0(para Python). Son esenciales para organizar pruebas, generar reportes y manejar\u00a0<strong>asserts<\/strong>\u00a0de forma profesional.<\/p>\n<\/li>\n<li>\n<p class=\"ds-markdown-paragraph\"><strong>Integraci\u00f3n Continua (CI\/CD):<\/strong>\u00a0Investiga c\u00f3mo integrar tus scripts de Selenium en herramientas como\u00a0<strong>Jenkins<\/strong>,\u00a0<strong>GitHub Actions<\/strong>\u00a0o\u00a0<strong>GitLab CI<\/strong>\u00a0para que se ejecuten autom\u00e1ticamente.<\/p>\n<\/li>\n<li>\n<p class=\"ds-markdown-paragraph\"><strong>Patrones Avanzados:<\/strong>\u00a0Explora\u00a0<strong>Data-Driven Testing<\/strong>\u00a0(pruebas con datos externos de Excel o CSV) y\u00a0<strong>Keyword-Driven Testing<\/strong>.<\/p>\n<\/li>\n<li>\n<p class=\"ds-markdown-paragraph\"><strong>Comunidades:<\/strong>\u00a0\u00danete a foros como la\u00a0<a href=\"https:\/\/www.selenium.dev\/support\/\" target=\"_blank\" rel=\"noopener noreferrer\">Comunidad Oficial de Selenium<\/a>\u00a0o Stack Overflow. Aprender de otros es invaluable.<\/p>\n<\/li>\n<\/ol>\n<p class=\"ds-markdown-paragraph\"><strong>\u00a1El viaje acaba de comenzar! La demanda por habilidades de\u00a0testing automatizado\u00a0sigue creciendo, y t\u00fa ya diste el primer paso m\u00e1s importante.<\/strong><\/p>\n<p class=\"ds-markdown-paragraph\"><strong>Call-to-Action (CTA):<\/strong><\/p>\n<blockquote>\n<p class=\"ds-markdown-paragraph\"><strong>\u00bfQuieres el c\u00f3digo completo y el proyecto final de este tutorial?<\/strong>\u00a0[Descarga el proyecto desde nuestro repositorio de GitHub aqu\u00ed] y desbloquea ejemplos adicionales comentados.<\/p>\n<\/blockquote>\n<blockquote>\n<p class=\"ds-markdown-paragraph\"><strong>\u00bfTienes dudas espec\u00edficas o te atascaste en alg\u00fan paso?<\/strong>\u00a0<strong>\u00a1Comenta abajo!<\/strong>\u00a0Nuestro equipo y la comunidad de Prometteur te ayudar\u00e1n en menos de 24 horas. Comparte este\u00a0<strong>tutorial para principiantes<\/strong>\u00a0con alguien que tambi\u00e9n quiera comenzar en el mundo de la automatizaci\u00f3n.<\/p>\n<\/blockquote>\n<h2><strong>Preguntas Frecuentes: Tutorial Selenium para Principiantes<\/strong><\/h2>\n<p class=\"ds-markdown-paragraph\"><strong>Q1: \u00bfCu\u00e1nto tiempo toma aprender Selenium desde cero?<\/strong><br \/>\n<strong>A:<\/strong>\u00a0Con dedicaci\u00f3n constante (alrededor de 1 hora al d\u00eda), siguiendo un\u00a0<strong>tutorial paso a paso<\/strong>\u00a0como este, en\u00a0<strong>2 o 3 semanas<\/strong>\u00a0podr\u00e1s entender los fundamentos y automatizar flujos web b\u00e1sicos por tu cuenta. Dominar conceptos avanzados y\u00a0<strong>frameworks<\/strong>\u00a0puede llevar de 2 a 4 meses m\u00e1s de pr\u00e1ctica.<\/p>\n<p class=\"ds-markdown-paragraph\"><strong>Q2: \u00bfNecesito saber programaci\u00f3n para usar Selenium?<\/strong><br \/>\n<strong>A:<\/strong>\u00a0Para\u00a0<strong>Selenium IDE<\/strong>, no es estrictamente necesario, ya que funciona por grabaci\u00f3n. Sin embargo, para usar\u00a0<strong>Selenium WebDriver<\/strong>\u00a0(la habilidad m\u00e1s valiosa en el mercado),\u00a0<strong>s\u00ed necesitas conocimientos b\u00e1sicos de programaci\u00f3n<\/strong>. Java y Python son los lenguajes m\u00e1s populares y amigables para\u00a0<strong>principiantes<\/strong>. Si no sabes programar, te recomendamos primero tomar un curso b\u00e1sico de l\u00f3gica de programaci\u00f3n con Python.<\/p>\n<p class=\"ds-markdown-paragraph\"><strong>Q3: \u00bfSelenium es gratuito?<\/strong><br \/>\n<strong>A:<\/strong>\u00a0\u00a1S\u00ed, completamente!\u00a0<strong>Selenium<\/strong>\u00a0es un proyecto de\u00a0<strong>c\u00f3digo abierto (open-source)<\/strong>. No hay que pagar ninguna licencia para usarlo, ni para proyectos personales ni empresariales. Esta es una de sus mayores ventajas frente a otras herramientas de\u00a0<strong>testing automatizado<\/strong> comerciales.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Tutorial de Selenium para Principiantes: Aprende Automatizaci\u00f3n Web Paso a Paso \u00bfSab\u00edas que la\u00a0automatizaci\u00f3n de pruebas\u00a0puede reducir el tiempo de testing de software hasta en un 70%? Si est\u00e1s buscando aprender una habilidad valiosa, con alta demanda en el mercado tech, est\u00e1s en el lugar correcto. Este\u00a0tutorial de Selenium para principiantes\u00a0est\u00e1 dise\u00f1ado para guiarte desde [&hellip;]<\/p>\n","protected":false},"author":23,"featured_media":5176,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"content-type":"","om_disable_all_campaigns":false,"footnotes":""},"categories":[1159],"tags":[],"class_list":{"0":"post-23119","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-uncategorized-es"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Tutorial Selenium para Principiantes - Automatizaci\u00f3n Web<\/title>\n<meta name=\"description\" content=\"Aprende Selenium desde cero con este tutorial paso a paso. Automatizaci\u00f3n de pruebas web, configuraci\u00f3n de WebDriver y ejemplos pr\u00e1cticos. \u00a1Comienza en testing automatizado hoy mismo!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/prometteursolutions.com\/blog\/es\/tutorial-de-selenium-para-principiantes-paso-a-paso\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Tutorial Selenium para Principiantes - Automatizaci\u00f3n Web\" \/>\n<meta property=\"og:description\" content=\"Aprende Selenium desde cero con este tutorial paso a paso. Automatizaci\u00f3n de pruebas web, configuraci\u00f3n de WebDriver y ejemplos pr\u00e1cticos. \u00a1Comienza en testing automatizado hoy mismo!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/prometteursolutions.com\/blog\/es\/tutorial-de-selenium-para-principiantes-paso-a-paso\/\" \/>\n<meta property=\"og:site_name\" content=\"blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prometteurSolutions\/timeline\/\" \/>\n<meta property=\"article:published_time\" content=\"2025-12-29T05:46:29+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-12-29T05:46:51+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/prometteursolutions.com\/blog\/wp-content\/uploads\/2023\/06\/Selenium-Tutorial-For-Beginners-Step-by-Step.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"950\" \/>\n\t<meta property=\"og:image:height\" content=\"500\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"raman\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@Iamprometteur\" \/>\n<meta name=\"twitter:site\" content=\"@Iamprometteur\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"raman\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/prometteursolutions.com\/blog\/es\/tutorial-de-selenium-para-principiantes-paso-a-paso\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/prometteursolutions.com\/blog\/es\/tutorial-de-selenium-para-principiantes-paso-a-paso\/\"},\"author\":{\"name\":\"raman\",\"@id\":\"https:\/\/prometteursolutions.com\/blog\/#\/schema\/person\/a8b19c23ac440968cb8277d1219da48b\"},\"headline\":\"Tutorial de Selenium para Principiantes Paso a Paso\",\"datePublished\":\"2025-12-29T05:46:29+00:00\",\"dateModified\":\"2025-12-29T05:46:51+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/prometteursolutions.com\/blog\/es\/tutorial-de-selenium-para-principiantes-paso-a-paso\/\"},\"wordCount\":2689,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/prometteursolutions.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/prometteursolutions.com\/blog\/es\/tutorial-de-selenium-para-principiantes-paso-a-paso\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prometteursolutions.com\/blog\/wp-content\/uploads\/2023\/06\/Selenium-Tutorial-For-Beginners-Step-by-Step.jpg\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/prometteursolutions.com\/blog\/es\/tutorial-de-selenium-para-principiantes-paso-a-paso\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/prometteursolutions.com\/blog\/es\/tutorial-de-selenium-para-principiantes-paso-a-paso\/\",\"url\":\"https:\/\/prometteursolutions.com\/blog\/es\/tutorial-de-selenium-para-principiantes-paso-a-paso\/\",\"name\":\"Tutorial Selenium para Principiantes - Automatizaci\u00f3n Web\",\"isPartOf\":{\"@id\":\"https:\/\/prometteursolutions.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/prometteursolutions.com\/blog\/es\/tutorial-de-selenium-para-principiantes-paso-a-paso\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/prometteursolutions.com\/blog\/es\/tutorial-de-selenium-para-principiantes-paso-a-paso\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prometteursolutions.com\/blog\/wp-content\/uploads\/2023\/06\/Selenium-Tutorial-For-Beginners-Step-by-Step.jpg\",\"datePublished\":\"2025-12-29T05:46:29+00:00\",\"dateModified\":\"2025-12-29T05:46:51+00:00\",\"description\":\"Aprende Selenium desde cero con este tutorial paso a paso. Automatizaci\u00f3n de pruebas web, configuraci\u00f3n de WebDriver y ejemplos pr\u00e1cticos. \u00a1Comienza en testing automatizado hoy mismo!\",\"breadcrumb\":{\"@id\":\"https:\/\/prometteursolutions.com\/blog\/es\/tutorial-de-selenium-para-principiantes-paso-a-paso\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/prometteursolutions.com\/blog\/es\/tutorial-de-selenium-para-principiantes-paso-a-paso\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/prometteursolutions.com\/blog\/es\/tutorial-de-selenium-para-principiantes-paso-a-paso\/#primaryimage\",\"url\":\"https:\/\/prometteursolutions.com\/blog\/wp-content\/uploads\/2023\/06\/Selenium-Tutorial-For-Beginners-Step-by-Step.jpg\",\"contentUrl\":\"https:\/\/prometteursolutions.com\/blog\/wp-content\/uploads\/2023\/06\/Selenium-Tutorial-For-Beginners-Step-by-Step.jpg\",\"width\":950,\"height\":500,\"caption\":\"Selenium Tutorial For Beginners\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/prometteursolutions.com\/blog\/es\/tutorial-de-selenium-para-principiantes-paso-a-paso\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/prometteursolutions.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Tutorial de Selenium para Principiantes Paso a Paso\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/prometteursolutions.com\/blog\/#website\",\"url\":\"https:\/\/prometteursolutions.com\/blog\/\",\"name\":\"blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/prometteursolutions.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/prometteursolutions.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/prometteursolutions.com\/blog\/#organization\",\"name\":\"blog\",\"url\":\"https:\/\/prometteursolutions.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/prometteursolutions.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/prometteursolutions.com\/blog\/wp-content\/uploads\/2021\/04\/new-logo.png\",\"contentUrl\":\"https:\/\/prometteursolutions.com\/blog\/wp-content\/uploads\/2021\/04\/new-logo.png\",\"width\":211,\"height\":60,\"caption\":\"blog\"},\"image\":{\"@id\":\"https:\/\/prometteursolutions.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/prometteurSolutions\/timeline\/\",\"https:\/\/x.com\/Iamprometteur\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/prometteursolutions.com\/blog\/#\/schema\/person\/a8b19c23ac440968cb8277d1219da48b\",\"name\":\"raman\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/prometteursolutions.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/85b952b5d8cf5cdbbb4ea41025b2b84ba089c12d8352f935442901a6c6106dcc?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/85b952b5d8cf5cdbbb4ea41025b2b84ba089c12d8352f935442901a6c6106dcc?s=96&d=mm&r=g\",\"caption\":\"raman\"},\"url\":\"https:\/\/prometteursolutions.com\/blog\/author\/raman\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Tutorial Selenium para Principiantes - Automatizaci\u00f3n Web","description":"Aprende Selenium desde cero con este tutorial paso a paso. Automatizaci\u00f3n de pruebas web, configuraci\u00f3n de WebDriver y ejemplos pr\u00e1cticos. \u00a1Comienza en testing automatizado hoy mismo!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/prometteursolutions.com\/blog\/es\/tutorial-de-selenium-para-principiantes-paso-a-paso\/","og_locale":"en_US","og_type":"article","og_title":"Tutorial Selenium para Principiantes - Automatizaci\u00f3n Web","og_description":"Aprende Selenium desde cero con este tutorial paso a paso. Automatizaci\u00f3n de pruebas web, configuraci\u00f3n de WebDriver y ejemplos pr\u00e1cticos. \u00a1Comienza en testing automatizado hoy mismo!","og_url":"https:\/\/prometteursolutions.com\/blog\/es\/tutorial-de-selenium-para-principiantes-paso-a-paso\/","og_site_name":"blog","article_publisher":"https:\/\/www.facebook.com\/prometteurSolutions\/timeline\/","article_published_time":"2025-12-29T05:46:29+00:00","article_modified_time":"2025-12-29T05:46:51+00:00","og_image":[{"width":950,"height":500,"url":"https:\/\/prometteursolutions.com\/blog\/wp-content\/uploads\/2023\/06\/Selenium-Tutorial-For-Beginners-Step-by-Step.jpg","type":"image\/jpeg"}],"author":"raman","twitter_card":"summary_large_image","twitter_creator":"@Iamprometteur","twitter_site":"@Iamprometteur","twitter_misc":{"Written by":"raman","Est. reading time":"11 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/prometteursolutions.com\/blog\/es\/tutorial-de-selenium-para-principiantes-paso-a-paso\/#article","isPartOf":{"@id":"https:\/\/prometteursolutions.com\/blog\/es\/tutorial-de-selenium-para-principiantes-paso-a-paso\/"},"author":{"name":"raman","@id":"https:\/\/prometteursolutions.com\/blog\/#\/schema\/person\/a8b19c23ac440968cb8277d1219da48b"},"headline":"Tutorial de Selenium para Principiantes Paso a Paso","datePublished":"2025-12-29T05:46:29+00:00","dateModified":"2025-12-29T05:46:51+00:00","mainEntityOfPage":{"@id":"https:\/\/prometteursolutions.com\/blog\/es\/tutorial-de-selenium-para-principiantes-paso-a-paso\/"},"wordCount":2689,"commentCount":0,"publisher":{"@id":"https:\/\/prometteursolutions.com\/blog\/#organization"},"image":{"@id":"https:\/\/prometteursolutions.com\/blog\/es\/tutorial-de-selenium-para-principiantes-paso-a-paso\/#primaryimage"},"thumbnailUrl":"https:\/\/prometteursolutions.com\/blog\/wp-content\/uploads\/2023\/06\/Selenium-Tutorial-For-Beginners-Step-by-Step.jpg","inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/prometteursolutions.com\/blog\/es\/tutorial-de-selenium-para-principiantes-paso-a-paso\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/prometteursolutions.com\/blog\/es\/tutorial-de-selenium-para-principiantes-paso-a-paso\/","url":"https:\/\/prometteursolutions.com\/blog\/es\/tutorial-de-selenium-para-principiantes-paso-a-paso\/","name":"Tutorial Selenium para Principiantes - Automatizaci\u00f3n Web","isPartOf":{"@id":"https:\/\/prometteursolutions.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/prometteursolutions.com\/blog\/es\/tutorial-de-selenium-para-principiantes-paso-a-paso\/#primaryimage"},"image":{"@id":"https:\/\/prometteursolutions.com\/blog\/es\/tutorial-de-selenium-para-principiantes-paso-a-paso\/#primaryimage"},"thumbnailUrl":"https:\/\/prometteursolutions.com\/blog\/wp-content\/uploads\/2023\/06\/Selenium-Tutorial-For-Beginners-Step-by-Step.jpg","datePublished":"2025-12-29T05:46:29+00:00","dateModified":"2025-12-29T05:46:51+00:00","description":"Aprende Selenium desde cero con este tutorial paso a paso. Automatizaci\u00f3n de pruebas web, configuraci\u00f3n de WebDriver y ejemplos pr\u00e1cticos. \u00a1Comienza en testing automatizado hoy mismo!","breadcrumb":{"@id":"https:\/\/prometteursolutions.com\/blog\/es\/tutorial-de-selenium-para-principiantes-paso-a-paso\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/prometteursolutions.com\/blog\/es\/tutorial-de-selenium-para-principiantes-paso-a-paso\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/prometteursolutions.com\/blog\/es\/tutorial-de-selenium-para-principiantes-paso-a-paso\/#primaryimage","url":"https:\/\/prometteursolutions.com\/blog\/wp-content\/uploads\/2023\/06\/Selenium-Tutorial-For-Beginners-Step-by-Step.jpg","contentUrl":"https:\/\/prometteursolutions.com\/blog\/wp-content\/uploads\/2023\/06\/Selenium-Tutorial-For-Beginners-Step-by-Step.jpg","width":950,"height":500,"caption":"Selenium Tutorial For Beginners"},{"@type":"BreadcrumbList","@id":"https:\/\/prometteursolutions.com\/blog\/es\/tutorial-de-selenium-para-principiantes-paso-a-paso\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/prometteursolutions.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Tutorial de Selenium para Principiantes Paso a Paso"}]},{"@type":"WebSite","@id":"https:\/\/prometteursolutions.com\/blog\/#website","url":"https:\/\/prometteursolutions.com\/blog\/","name":"blog","description":"","publisher":{"@id":"https:\/\/prometteursolutions.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/prometteursolutions.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/prometteursolutions.com\/blog\/#organization","name":"blog","url":"https:\/\/prometteursolutions.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/prometteursolutions.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/prometteursolutions.com\/blog\/wp-content\/uploads\/2021\/04\/new-logo.png","contentUrl":"https:\/\/prometteursolutions.com\/blog\/wp-content\/uploads\/2021\/04\/new-logo.png","width":211,"height":60,"caption":"blog"},"image":{"@id":"https:\/\/prometteursolutions.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/prometteurSolutions\/timeline\/","https:\/\/x.com\/Iamprometteur"]},{"@type":"Person","@id":"https:\/\/prometteursolutions.com\/blog\/#\/schema\/person\/a8b19c23ac440968cb8277d1219da48b","name":"raman","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/prometteursolutions.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/85b952b5d8cf5cdbbb4ea41025b2b84ba089c12d8352f935442901a6c6106dcc?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/85b952b5d8cf5cdbbb4ea41025b2b84ba089c12d8352f935442901a6c6106dcc?s=96&d=mm&r=g","caption":"raman"},"url":"https:\/\/prometteursolutions.com\/blog\/author\/raman\/"}]}},"_links":{"self":[{"href":"https:\/\/prometteursolutions.com\/blog\/wp-json\/wp\/v2\/posts\/23119","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prometteursolutions.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prometteursolutions.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prometteursolutions.com\/blog\/wp-json\/wp\/v2\/users\/23"}],"replies":[{"embeddable":true,"href":"https:\/\/prometteursolutions.com\/blog\/wp-json\/wp\/v2\/comments?post=23119"}],"version-history":[{"count":1,"href":"https:\/\/prometteursolutions.com\/blog\/wp-json\/wp\/v2\/posts\/23119\/revisions"}],"predecessor-version":[{"id":23120,"href":"https:\/\/prometteursolutions.com\/blog\/wp-json\/wp\/v2\/posts\/23119\/revisions\/23120"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prometteursolutions.com\/blog\/wp-json\/wp\/v2\/media\/5176"}],"wp:attachment":[{"href":"https:\/\/prometteursolutions.com\/blog\/wp-json\/wp\/v2\/media?parent=23119"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prometteursolutions.com\/blog\/wp-json\/wp\/v2\/categories?post=23119"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prometteursolutions.com\/blog\/wp-json\/wp\/v2\/tags?post=23119"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}