🧉 BasePage: Creando la configuración e instanciación del WebDriver
🧉 BasePage: Creando la configuración e instanciación del WebDriver
Selenium y Cucumber con Java
Introducción a Cucumber: Instalación e implementación
Introducción a Cucumber: Instalación e implementación
Localización de Elementos Web con XPath y CSS
Localización de Elementos Web con XPath y CSS
Selenium WebDriver: La librería para interactuar con elementos de una página web.
Selenium WebDriver: La librería para interactuar con elementos de una página web.
Assertions: Validando comportamiento esperado
Assertions: Validando comportamiento esperado
Cucumber avanzado: Tags, parámetros y mejores prácticas
Cucumber avanzado: Tags, parámetros y mejores prácticas
Dejá tu testimonio inmortalizado en la web
Dejá tu testimonio inmortalizado en la web
En esta clase estamos haciendo una de las partes fundamentales de nuestro framework y, también, de las más complejas. Atentos a los comentarios que agregué al código y a la clase!
Archivos en los que trabajamos:
A FreeRangeNavegacion.feature, de momento, le vamos a dejar solo un paso, el Given.
Feature: Navigation bar
To see the subpages
Without logging in
I can click the navigation bar links
Scenario: I can access the subpages through the navigation bar
Given I navigate to www.freerangetesters.comAhora, en la BasePage.java es donde va a ocurrir la magia:
package pages;
// Importaciones necesarias
import java.time.Duration;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.WebDriverWait;
import io.github.bonigarcia.wdm.WebDriverManager;
public class BasePage {
/*
* Declaración de una variable estática 'driver' de tipo WebDriver
* Esta variable va a ser compartida por todas las instancias de BasePage y sus subclases
*/
protected static WebDriver driver;
/*
* Declaración de una variable de instancia 'wait' de tipo WebDriverWait.
* Se inicializa inmediatamente con una instancia dew WebDriverWait utilizando el 'driver' estático
* WebDriverWait se usa para poner esperas explícitas en los elementos web
*/
WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(5));
/*
* Configura el WebDriver para Chrome usando WebDriverManager.
* WebDriverManager va a estar descargando y configurando automáticamente el driver del navegador
*/
static {
WebDriverManager.chromedriver().setup();
//Inicializa la variable estática 'driver' con una instancia de ChromeDriver
driver = new ChromeDriver();
}
/*
* Este es el constructor de BasePage que acepta un objeto WebDriver como argumento.
*/
public BasePage(WebDriver driver) {
BasePage.driver = driver;
}
//Método estático para navegar a una URL.
public static void navigateTo(String url) {
driver.get(url);
}
}