Elemento web en Selenium
โก Resumen inteligente
Elemento web en Selenium representa cada control de formulario como un objeto programable, lo que permite a los evaluadores interactuar con campos de texto, casillas de verificaciรณn, botones de radio y elementos de envรญo utilizando los mรฉtodos findElement, sendKeys, click, clear y submit a travรฉs de Java Ejemplos de cรณdigo.

Elemento web en Selenium
Los formularios son los elementos web fundamentales que capturan informaciรณn de los visitantes de un sitio web. Los formularios web incluyen diferentes controles de interfaz grรกfica de usuario (GUI), como cuadros de texto, campos de contraseรฑa, casillas de verificaciรณn, botones de opciรณn, menรบs desplegables y campos para archivos.
Este tutorial explica cรณmo acceder a cada elemento del formulario usando Selenium Controlador web con Java. Selenium encapsula cada elemento del formulario como un objeto de WebElement. Proporciona una API para localizar elementos y realizar acciones sobre ellos, como introducir texto, hacer clic en botones y enviar formularios. Las secciones siguientes describen los mรฉtodos disponibles para cada elemento del formulario.
Introducciรณn a WebElement, findElement(), findElements()
Selenium WebDriver representa un elemento de formulario simple como un objeto de Elemento web.
WebDriver identifica los elementos del formulario utilizando diferentes propiedades del elemento web, incluyendo ID, Nombre, Clase, XPath, Nombre de la etiqueta, selectores CSS y texto del enlace.
WebDriver proporciona los dos mรฉtodos WebElement siguientes para encontrar elementos:
- buscarElemento() โ encuentra un รบnico elemento web y lo devuelve como un WebElement Selenium objeto.
- buscarElementos() โ devuelve una lista de objetos WebElement que coinciden con los criterios del localizador.
El siguiente ejemplo muestra cรณmo recuperar un รบnico elemento, un campo de texto en una pรกgina web, como un objeto WebElement mediante el mรฉtodo findElement(). El mรฉtodo findElements() para buscar varios elementos se explica en tutoriales posteriores.
Paso 1) Importa el paquete necesario para crear objetos WebElement.
Paso 2) Para recuperar un objeto WebElement, llame al mรฉtodo findElement() disponible en la clase WebDriver, como se muestra a continuaciรณn.
Selenium Texto de entrada
Los cuadros de entrada se refieren a cualquiera de estos dos tipos:
- Campos de texto โ Selenium Cuadros de texto que aceptan valores escritos y los muestran exactamente como se introducen.
- Campos de contraseรฑa โ Cuadros de texto que aceptan valores escritos pero los enmascaran con una serie de caracteres especiales (generalmente puntos o asteriscos) para ocultar informaciรณn confidencial.
Localizadores
El mรฉtodo findElement() recibe un parรกmetro, que es un localizador que apunta al elemento. Diferentes localizadores, como By.id(), By.name(), By.xpath() y By.cssSelector(), encuentran elementos en la pรกgina utilizando sus propiedades, como id, nombre o ruta.
Puedes utilizar plugins como FirePath para obtener el ID, la ruta XPath y otros valores de localizaciรณn para los elementos.
Usando el sitio de ejemplo https://demo.guru99.com/test/login.htmlEl cรณdigo que aparece a continuaciรณn localiza el campo de texto "Direcciรณn de correo electrรณnico" utilizando el localizador id y el campo "Contraseรฑa" utilizando el localizador name.
- El campo de texto del correo electrรณnico se encuentra por ID.
- El campo de contraseรฑa se encuentra por nombre.
enviar claves en Selenium
sendKeys() en Selenium Es un mรฉtodo que se utiliza para introducir contenido editable en campos de texto y contraseรฑa durante la ejecuciรณn de pruebas. Estos campos se identifican mediante localizadores como nombre, clase e ID. El mรฉtodo estรก disponible en el objeto WebElement. A diferencia del mรฉtodo type, sendKeys() no reemplaza el texto existente en un cuadro de texto.
Cรณmo ingresar texto en Selenium
Para introducir texto en campos de texto y campos de contraseรฑa, sendKeys() es el mรฉtodo disponible en el WebElement en Selenium.
Usando el mismo ejemplo de https://demo.guru99.com/test/login.htmlEl fragmento a continuaciรณn localiza el campo de texto y el campo de contraseรฑa e introduce texto en ellos. Selenium.
- Localiza el campo de texto "Direcciรณn de correo electrรณnico" utilizando el localizador de ID.
- Localice el campo "Contraseรฑa" utilizando el buscador de nombres.
- Introduzca texto en la โDirecciรณn de correo electrรณnicoโ utilizando el Selenium Mรฉtodo sendKeys.
- Ingrese una contraseรฑa en el campo "Contraseรฑa" usando el mรฉtodo sendKeys().
Eliminar valores en la entrada Boxes
El claro() Este mรฉtodo elimina el texto que se encuentra dentro de un cuadro de entrada. Este mรฉtodo no necesita ningรบn parรกmetro. El siguiente fragmento de cรณdigo borra el texto de los campos de correo electrรณnico o contraseรฑa.
Selenium Haga clic en los botones
El Selenium Se accede al botรณn de clic mediante el mรฉtodo click().
En el ejemplo anterior
- Busca el botรณn para iniciar sesiรณn.
- Haz clic en el botรณn "Iniciar sesiรณn" en la pรกgina de inicio de sesiรณn del sitio para autenticarte.
Selenium Enviar botones
Los botones de envรญo envรญan el formulario completo al servidor. Puedes llamar al mรฉtodo click() en el elemento web, como se muestra arriba, o usar el mรฉtodo submit() en cualquier elemento del formulario o en el propio botรณn de envรญo.
Cuando se utiliza submit(), WebDriver busca en el DOM para identificar el formulario al que pertenece el elemento y luego activa su funciรณn de envรญo.
Paquete COMPLETE Code
Aquรญ estรก el cรณdigo completo y funcional.
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.*;
public class Form {
public static void main(String[] args) {
// declaration and instantiation of objects/variables
System.setProperty("webdriver.chrome.driver", "G:\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
String baseUrl = "https://demo.guru99.com/test/login.html";
driver.get(baseUrl);
// Get the WebElement corresponding to the Email Address(TextField)
WebElement email = driver.findElement(By.id("email"));
// Get the WebElement corresponding to the Password Field
WebElement password = driver.findElement(By.name("passwd"));
email.sendKeys("abcd@gmail.com");
password.sendKeys("abcdefghlkjl");
System.out.println("Text Field Set");
// Deleting values in the text box
email.clear();
password.clear();
System.out.println("Text Field Cleared");
// Find the submit button
WebElement login = driver.findElement(By.id("SubmitLogin"));
// Using click method to submit form
email.sendKeys("abcd@gmail.com");
password.sendKeys("abcdefghlkjl");
login.click();
System.out.println("Login Done with Click");
// Using submit method to submit the form. Submit used on password field
driver.get(baseUrl);
driver.findElement(By.id("email")).sendKeys("abcd@gmail.com");
driver.findElement(By.name("passwd")).sendKeys("abcdefghlkjl");
driver.findElement(By.id("SubmitLogin")).submit();
System.out.println("Login Done with Submit");
// driver.close();
}
}
Localizaciรณn de averรญas
Si encuentra una excepciรณn NoSuchElementException() al buscar elementos, significa que el elemento no estรก presente en la pรกgina en el momento en que WebDriver accediรณ a รฉl.
- Vuelva a comprobar su localizador utilizando FirePath o la opciรณn Inspeccionar elemento en Chrome.
- Comprueba si el valor utilizado en el cรณdigo difiere del valor actual del elemento que se ve en FirePath.
- Algunos atributos son dinรกmicos para ciertos elementos. Si un valor cambia dinรกmicamente, utilice By.xpath() o By.cssSelector(), que son mรกs fiables pero ligeramente mรกs complejos.
- En ocasiones, el problema radica en una condiciรณn de espera; WebDriver puede ejecutar el cรณdigo antes de que la pรกgina termine de cargarse.
- Agregue una espera antes de findElement() usando esperas implรญcitas o explรญcitas.
Resumen
- La tabla que aparece a continuaciรณn resume los comandos para acceder a cada tipo de elemento mencionado anteriormente.
| Elemento | Comando | Mareas Ideales para Lecciones |
|---|---|---|
| Entrada Box | sendKeys () | Se utiliza para introducir valores en cuadros de texto. |
| claro() | Se utiliza para borrar el valor actual de los cuadros de texto. | |
| Enlaces | hacer clic() | Se utiliza para hacer clic en el enlace y esperar a que la pรกgina se cargue por completo antes de continuar con el siguiente comando. |
| Botรณn de Envรญo | enviar() | Se utiliza para enviar el formulario activando el controlador de envรญo del formulario principal. |
- WebDriver permite la selecciรณn de mรกs de una opciรณn en un elemento SELECT mรบltiple.
- Puedes usar el mรฉtodo submit() en cualquier elemento del formulario. WebDriver activa automรกticamente la funciรณn de envรญo del formulario al que pertenece el elemento.






