La función send_keys() en Selenium Python

Rana Hasnain Khan 21 junio 2023
  1. la función send_keys() en Selenium Python
  2. Validación de entrada usando la función send_keys() en Selenium Python
  3. Borrar textos usando la función send_keys() en Selenium Python
La función send_keys() en Selenium Python

Presentaremos la función send_keys() en Selenium Python y demostraremos sus usos.

Cualquier aplicación necesita pasar por algunas pruebas antes de obtener un mercado. La aplicación primero debe cumplir con todos los requisitos asociados con su nombre.

Deberíamos probar las aplicaciones exhaustivamente ya que nadie predice la entrada exacta que se le da a la aplicación. Python Selenium puede ayudarnos a probar todas las causas probables.

send_keys() es un proceso en el que las entradas del teclado, como números, textos y símbolos, se envían a los cuadros de texto de una aplicación. send_keys() es parte de WebDriver, y cada entrada de teclado se envía a este elemento.

la función send_keys() en Selenium Python

El primer paso involucrado en este método es abrir la aplicación web que queremos probar. Podemos abrir la aplicación usando su URL.

Espere a que toda la página se cargue correctamente, ya que la prueba falla si la aplicación es de tipo dinámico, pero la página web no está completamente cargada mientras se aplica la prueba.

El siguiente paso consiste en seleccionar y buscar el elemento deseado enviado a las entradas del teclado. Este elemento suele ser un cuadro de texto que permite al usuario escribir dentro de él.

El elemento puede ser una pestaña de búsqueda o algún formulario. Podemos usar varias opciones, como ID de elemento, nombre de elemento y XPath para encontrar los elementos.

Después de seleccionar los elementos, las entradas del teclado se envían utilizando el método send_keys. Podemos encontrar un elemento usando el id, el nombre de la clase o el xpath.

La sintaxis de cada método se muestra a continuación.

# python
getElemById = driver.find_element_by_id("myId")
getElemByName = driver.find_element_by_name("myClass")
getElemByXPath = driver.find_element_by_xpath("//input[@id='myId']")

La aplicación principal de send_keys() es probar la aplicación para numerosas entradas. Sin embargo, es importante conocer las dos entradas comúnmente utilizadas para este método.

Validación de entrada usando la función send_keys() en Selenium Python

La mayoría de las aplicaciones tienen un formulario de inicio de sesión para el cual se usa ampliamente la dirección de correo electrónico del usuario. Como todos sabemos, cada dirección de correo electrónico tiene una plantilla estándar que comienza con un nombre de usuario, incluye el símbolo @, y le sigue el nombre de dominio.

Ahora, debemos agregar el proceso para validar la dirección de correo electrónico.

Esto no permitirá que el usuario inicie sesión en la aplicación escribiendo una dirección de correo electrónico no válida en el formulario de inicio de sesión. La validación se puede confirmar agregando y verificando la aplicación enviando las entradas que no siguen la plantilla principal.

Validaciones adicionales también pueden involucrarse en este proceso. Dado que la contraseña para iniciar sesión en la aplicación tiene un conjunto específico de reglas, esta validación se puede verificar enviando entradas que no siguen las reglas.

También se debe verificar la barra de búsqueda presente en la aplicación. Una barra de búsqueda debe mostrar los resultados relevantes para guiar al usuario con el elemento de búsqueda deseado correctamente.

send_keys() es una herramienta útil para verificar los resultados esperados de la barra de búsqueda.

Algunas aplicaciones web incluyen funciones especiales que deben verificarse antes de publicar la aplicación. Un ejemplo de una función especial es Google Meet, que utiliza Ctrl+D para silenciar o reactivar el micrófono.

Código de ejemplo:

# python
from selenium import webdriver

Chromedriver = webdriver.Chrome()

Chromedriver.get("https://www.google.com/")

getElemById = Chromedriver.find_element_by_name("gLFyf")

getElemById.send_keys("This is filed by Selenium send keys")

Producción:

Selenium send_keys() - Ejemplo 1

Como puede ver en el ejemplo anterior, con la ayuda del método send_keys() de Selenium, podemos completar cualquier campo de entrada en cualquier sitio web.

Borrar textos usando la función send_keys() en Selenium Python

También podemos editar y cambiar los valores de las claves utilizando la misma función send_keys(). Veamos un ejemplo en el que cambiaremos el valor de la entrada y luego lo cambiaremos de nuevo.

En este ejemplo, enviaremos la clave; después de dormir durante 3 segundos, eliminaremos 3 letras de la clave. Y al final, cambiaremos el valor nuevamente, como se muestra a continuación.

Código de ejemplo:

# python
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time

link = "https://www.google.com/"

chromeDriver = webdriver.Chrome("C:\chromedriver.exe")

driverOptions = webdriver.ChromeOptions()

windowSize = chromeDriver.get_window_size()

chromeDriver.get(link)

getElemByName = chromeDriver.find_element_by_name("gLFyf")

getElemByName.send_keys("For test purpose")
time.sleep(3)

getElemByName.send_keys(3 * Keys.BACKSPACE)

time.sleep(3)

getElemByName.send_keys("testing second key")

time.sleep(3)

getElemByName.clear()

time.sleep(3)

chromeDriver.quit()

Primer paso:

Selenium send_keys() - Ejemplo 2 Primer paso

Segundo paso:

Selenium send_keys() - Ejemplo 2 Segundo paso

Tercer paso:

Selenium send_keys() - Ejemplo 2 Tercer paso

Problemas de solución de problemas:

  1. Debemos asegurarnos de que el elemento elegido sea de las entradas del teclado.
  2. La identificación del elemento debe darse con la debida referencia para evitar complicaciones.
  3. Siga siempre el método adecuado: busque el elemento, haga clic en el elemento y luego envíe las claves.
  4. send_keys() puede fallar cuando un elemento no está activo o fuera de alcance. Asegúrese de contar estos factores mientras trabaja en un elemento específico.
Rana Hasnain Khan avatar Rana Hasnain Khan avatar

Rana is a computer science graduate passionate about helping people to build and diagnose scalable web application problems and problems developers face across the full-stack.

LinkedIn

Artículo relacionado - Python Selenium