Rellenar automáticamente varias respuestas en un formulario de Google con Selenium y Python

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í

FORMULARIO DE GOOGLE

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:

Publicación traducida automáticamente

Artículo escrito por abhigoya y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *