Elemento web en Selenium: TextoBox, Botón, enviar teclas(), hacer clic()

Elemento web en Selenium

Los formularios son los elementos web fundamentales para recibir información de los visitantes del sitio web. Los formularios web tienen diferentes elementos GUI como texto boxes, Campos de contraseña, Comprobarboxes, botones de opción, menús desplegables, entradas de archivos, etc.

Veremos cómo acceder a estos diferentes elementos del formulario usando Selenium Controlador web con Java. Selenium encapsula cada elemento del formulario como un objeto de WebElement. Proporciona API para encontrar los elementos y tomar medidas sobre ellos, como ingresar texto en texto. boxes, pulsando los botones, etc. Veremos los métodos que están disponibles para acceder a cada elemento del formulario.

Introducción a WebElement, findElement(), findElements()

Selenium Web Driver encapsula un elemento de formulario simple como un objeto de elemento web.

Existen varias técnicas mediante las cuales WebDriver identifica los elementos del formulario en función de las diferentes propiedades de los elementos web, como ID, nombre, clase, XPath, nombre de etiqueta, selectores CSS, texto de enlace, etc.

Web Driver proporciona lo siguientewing dos métodos WebElement para encontrar los elementos.

  • buscarElemento() – encuentra un único elemento web y lo devuelve como WebElement Selenium objeto.
  • buscarElementos() – devuelve una lista de objetos WebElement que coinciden con los criterios del localizador.

Veamos los fragmentos de código para obtener un solo elemento: campo de texto en una página web como un objeto de WebElement usando el método findElement(). Cubriremos el método findElements() para buscar múltiples elementos en tutoriales posteriores.

Paso 1) Necesitamos importar este paquete para crear objetos de Elementos Web.

Introducción a WebElement FindElement,FindElements

Paso 2) Necesitamos llamar al método findElement() disponible en la clase WebDriver y obtener un objeto de WebElement.

Consulte a continuación para ver cómo se hace.

Selenium Texto de entrada

Entrada boxes se refiere a cualquiera de estos dos tipos:

  1. Campos de texto– Selenium texto de entrada boxes que acepta valores escritos y los muestra tal como son.
  2. Campos de contraseña- texto boxAceptan valores escritos pero los enmascaran como una serie de caracteres especiales (comúnmente puntos y asteriscos) para evitar que se muestren valores sensibles.yed.

    Selenium Texto de entrada

Localizadores

El método findElement() toma un parámetro que es un localizador del elemento. Diferentes localizadores como By.id(), By.name(), By.xpath(), By.CSSSelector(), etc. ubican los elementos en la página usando sus propiedades como “““ id, nombre o ruta, etc.

Puede utilizar complementos como Fire path para obtener ayuda para obtener la identificación, xpath, etc. de los elementos.

Usando el sitio de ejemplo https://demo.guru99.com/test/login.html A continuación se muestra el código para localizar el “Email campo de texto dirección” usando el localizador de identificación y el campo “Contraseña” usando el localizador de nombre.

Localizadores

  1. Email El campo de texto está ubicado por Id.
  2. El campo de contraseña se encuentra por nombre

enviar claves en Selenium

enviar claves() en Selenium es un método utilizado para ingresar contenido editable en los campos de texto y contraseña durante la ejecución de la prueba. Estos campos se identifican mediante localizadores como nombre, clase, id, etc. Es un método disponible en el elemento web. A diferencia del método de tipo, el método sendkeys() no reemplaza el texto existente en ningún texto. box.

Cómo ingresar texto en Selenium

Para ingresar texto en los campos de texto y los campos de contraseña, sendKeys() es el método disponible en WebElement en Selenium.

Usando el mismo ejemplo de https://demo.guru99.com/test/login.html sitio, así es como encontramos los campos Campo de texto y Contraseña e ingresamos texto en Selenium.

Texto en Selenium

  1. Encuentra la “Email Dirección” Campo de texto usando el localizador de identificación.
  2. Busque el campo "Contraseña" utilizando el localizador de nombres
  3. Ingrese texto en el campo “Email Dirección” utilizando el Selenium método de envío de claves.
  4. Ingrese una contraseña en el campo "Contraseña" usando el método sendKeys().

Eliminar valores en la entrada Boxes

La claro() El método se utiliza para eliminar el texto en una entrada. box. Este método no necesita un parámetro.. El siguiente fragmento de código borrará el texto de la Email o Campos de contraseña

Eliminar valores en la entrada Boxes

Selenium Haga clic en los botones

La Selenium Se puede acceder al botón de clic utilizando el método click().

En el ejemplo anterior

  1. Encuentra el botón para iniciar sesión
  2. Haga clic en el botón "Iniciar sesión" en la página de inicio de sesión del sitio para iniciar sesión en el sitio.

Selenium Haga clic en los botones

Selenium Enviar botones

Los botones de envío se utilizan para enviar el formulario completo al servidor. Podemos usar el método hacer clic () en el elemento web como un botón normal como lo hicimos anteriormente o usar el método enviar () en cualquier elemento web en el formulario o en el botón de enviar.

Selenium Enviar botones

Cuando se usa enviar (), WebDriver buscará el DOM para saber a qué formulario pertenece el elemento y luego activará su función de envío.

Código Completo

Aquí está el código de trabajo completo.

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();		
        		
    }		
}

Solucionando Problemas

Si encuentra NoSuchElementException() mientras busca elementos, significa que el elemento no se encuentra en la página en el momento en que el controlador web accedió a la página.

  1. Verifique su localizador nuevamente usando Firepath o Inspect Element en Chrome.
  2. Compruebe si el valor que utilizó en el código es diferente del del elemento en Firepath ahora.
  3. Algunas propiedades son dinámicas para unos pocos elementos. En caso de que encuentre que el valor es diferente y cambia dinámicamente, considere usar By.xpath() o By.cssSelector(), que son más confiables pero com.plex formas.
  4. A veces, también podría ser un problema de espera, es decir, el controlador web ejecutó su código incluso antes de que la página se cargara por completo, etc.
  5. Agregue una espera antes de findElement() usando esperas implícitas o explícitas.

Resumen

  • La siguiente tabla sumamariSelecciona los comandos para acceder a cada tipo de elemento discutido anteriormente.
Element Comando Descripción
Entrada Box sendKeys () utilizado para ingresar valores en el texto boxes
claro() usado para borrar texto boxes de su valor actual
Enlaces hacer clic() se utiliza para hacer clic en el enlace y esperar a que se complete la carga de la página antes de continuar con el siguiente comando.
Enviar Button enviar()
  • WebDriver permite la selección de más de una opción en un elemento SELECT múltiple.
  • Puede utilizar el método enviar() en cualquier elemento del formulario. WebDriver activará automáticamente la función de envío del formulario al que pertenece ese elemento.