Prerrequisito: Selenium
Selenium es una poderosa herramienta para controlar los navegadores web a través de programas y realizar la automatización del navegador. Es funcional para todos los navegadores, funciona en todos los principales sistemas operativos y sus scripts están escritos en varios lenguajes, es decir, Python , Java , C# , etc. Trabajaremos con Python. Selenium Tutorial cubre todos los temas, como: WebDriver, WebElement, Unit Testing con selenium.
La tarea aquí es completar múltiples respuestas con el mismo formulario de Google usando selenium en python. El enlace al formulario de Google utilizado en este ejemplo se proporciona a continuación:
Enlace del formulario: haga clic aquí
El formulario tiene cinco entradas:
- Nombre
- Correo electrónico
- Dirección
- Número de teléfono
- Comentarios
Nombre, correo electrónico y número de teléfono tienen el mismo nombre de clase quantumWizTextinputPaperinputInput y Dirección y comentarios tienen el mismo nombre de clase quantumWizTextinputPapertextareaInput. Los datos están en forma de lista.
El programa dado también usa count, por lo que los cuadros de texto contienen una lista, cuyo nombre de clase es «quantumWizTextinputPaperinputInput» y los textareaboxes contienen una lista, cuyo nombre de clase es «quantumWizTextinputPapertextareaInput» y cuando se agregan estas dos clases, se obtiene una lista. Los datos también se proporcionan en forma de lista, por lo que la variable de conteo se incrementará con cada variable de datos.
Ejemplo:
# valores de datos
[nombre, correo electrónico, número de teléfono, dirección, comentarios]
datos = [
[‘Mary D Joiner’,’MaryDJoiner@gmail.com’,’4079025063′,’2474 McDonald Avenue,Maitland’,’NA’], [‘
Karen B Johnson’,’KarenBJohnson@gmail.com’,’3153437575′,’2143 Oak Street,GRAND ISLE’,’NA’],
]
Acercarse
Para lograr nuestra funcionalidad requerida, los pasos dados deben seguirse en un orden perfecto:
- Importar selenium y módulo de tiempo.
- Agregue la ruta del controlador de cromo y la URL del formulario
- Agregue algo de retraso, hasta que la página se cargue por completo
- Agregar datos en forma de lista
- Iterar a través de cada dato y completar los detalles
- Cerrar la ventana
Programa:
Python3
# Import Module from selenium import webdriver from selenium.webdriver.common.keys import Keys import time # open Chrome driver = webdriver.Chrome( 'C:/Users/HP/Desktop/Drivers/chromedriver_win32/chromedriver.exe') # Open URL driver.get('https://forms.gle/vWVmojtWdfFvEj8V6') # wait for one second, until page gets fully loaded time.sleep(1) # Data datas = [ ['Mary D Joiner', 'MaryDJoiner@gmail.com', '4079025063', '2474 McDonald Avenue,Maitland', 'NA'], ['Karen B Johnson', 'KarenBJohnson@gmail.com', '3153437575', '2143 Oak Street,GRAND ISLE', 'NA'], ] # Iterate through each data for data in datas: # Initialize count is zero count = 0 # contain input boxes textboxes = driver.find_elements_by_class_name( "quantumWizTextinputPaperinputInput") # contain textareas textareaboxes = driver.find_elements_by_class_name( "quantumWizTextinputPapertextareaInput") # Iterate through all input boxes for value in textboxes: # enter value value.send_keys(data[count]) # increment count value count += 1 # Iterate through all textareas for value in textareaboxes: # enter value value.send_keys(data[count]) # increment count value count += 1 # click on submit button submit = driver.find_element_by_xpath( '//*[@id="mG61Hd"]/div[2]/div/div[3]/div[1]/div/div/span/span') submit.click() # fill another response another_response = driver.find_element_by_xpath( '/html/body/div[1]/div[2]/div[1]/div/div[4]/a') another_response.click() # close the window driver.close()
Producción: