Buenos días lectores.
Selenium es una potente herramienta (marco de código abierto) para automatizar aplicaciones web en múltiples navegadores y plataformas. Con soporte para varios lenguajes de programación como Java, permite crear scripts de prueba robustos que simulan interacciones de usuario.
Aquí te voy a dejar lo básico para manejarlo, con solo saber esto ya podrás automatizar todos los sitios:
Abrir un Navegador y Navegar a una URL:
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class OpenBrowser {
public static void main(String[] args) {
WebDriver driver = new ChromeDriver();
driver.get("https://example.com");
driver.quit();
}
}
Encontrar Elementos Usando Diferentes Localizadores:
Por ID:
driver.findElement(By.id("elementID")).click();
Por Nombre:
driver.findElement(By.name("elementName")).sendKeys("input text");
Por XPath:
driver.findElement(By.xpath("//input[@id='elementID']")).click();
Por Selector CSS:
driver.findElement(By.cssSelector("#elementID")).click();
Hacer Clic en un Botón
driver.findElement(By.id("buttonID")).click();
Escribir texto en un cuadro de Texto
driver.findElement(By.name("textboxName")).sendKeys("Sample Text");
Hacer clic en un checkbox (Casillas de Verificación)
WebElement checkbox = driver.findElement(By.id("checkboxID"));
checkbox.click();
System.out.println(checkbox.isSelected()); // Verificar si está seleccionada
Manejo de Listas Desplegables
Select dropdown = new Select(driver.findElement(By.id("dropdownID")));
dropdown.selectByVisibleText("OptionText");
Esperar a que un Elemento Sea Visible y dar click cuando este visible
WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10));
WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("elementID")));
element.click();
Manejo de Alertas
Aceptar Alerta:
Alert alert = driver.switchTo().alert();
alert.accept();
Rechazar Alerta:
Alert alert = driver.switchTo().alert();
alert.dismiss();
Manejo de Múltiples Ventanas
String parentWindow = driver.getWindowHandle();
Set<String> allWindows = driver.getWindowHandles();
for (String window : allWindows) {
if (!window.equals(parentWindow)) {
driver.switchTo().window(window);
}
}
// Volver a la ventana principal
driver.switchTo().window(parentWindow);
Manejo de Carga de Archivos
driver.findElement(By.id("uploadButtonID")).sendKeys("C:\\path\\to\\file.txt");
Tomar Capturas de Pantalla
File srcFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(srcFile, new File("path/to/screenshot.png"));
Extraer Texto de un Elemento Web
String elementText = driver.findElement(By.xpath("//div[@id='elementID']")).getText();
System.out.println(elementText);
Manejo de Marcos (Iframes)
Por Índice:
driver.switchTo().frame(0);
Por Nombre o ID:
driver.switchTo().frame("frameNameOrID");
Manejo de Elementos Dinámicos
driver.findElement(By.xpath("//*[contains(@id, 'dynamicPart')]")).click();
Realizar Acción de Hover con el Ratón
Actions actions = new Actions(driver);
WebElement element = driver.findElement(By.id("elementID"));
actions.moveToElement(element).perform();
Acción de Arrastrar y Soltar (Drag and drop)
Actions actions = new Actions(driver);
WebElement source = driver.findElement(By.id("sourceElementID"));
WebElement target = driver.findElement(By.id("targetElementID"));
actions.dragAndDrop(source, target).perform();
Aserciones en TestNG/JUnit
Aserción en TestNG:
import org.testng.Assert;
String pageTitle = driver.getTitle();
Assert.assertEquals(pageTitle, "Expected Title");
Aserción en JUnit:
import static org.junit.Assert.*;
String pageTitle = driver.getTitle();
assertEquals("Expected Title", pageTitle);
Cerrar el Navegador
Cerrar la ventana actual del navegador:
driver.close();
Terminar la sesión de WebDriver (cerrar todas las ventanas):
driver.quit();
Esta lista cubre preguntas y soluciones esenciales proporcionando una base sólida para la preparación de entrevistas. Así que tienes un 2x1.
Saludos
Fuentes:
https://www.linkedin.com/pulse/basic-selenium-java-automation-testing-kushal-parikh-kgsxf/
No hay comentarios:
Publicar un comentario