Nikola Form Filler es un programa diseñado para automatizar el llenado de formularios en la página web https://nikola.cl/empecemos
utilizando Selenium. Su objetivo principal es simplificar el proceso, haciéndolo escalable, legible y modular para facilitar futuras mejoras o adaptaciones.
El programa utiliza un archivo JSON como entrada, que contiene la información requerida para llenar los formularios. Además, permite procesar múltiples casos en una sola ejecución, iterando automáticamente sobre cada conjunto de datos. Esto lo hace ideal para manejar grandes volúmenes de formularios de manera eficiente y confiable.
Antes de ejecutar el programa, asegúrate de tener instalados los siguientes componentes:
- Descarga e instala Python 3.10 o superior desde Python.org.
- Ejecuta el siguiente comando para instalar las librerías necesarias:
pip install selenium
-
Asegúrate de tener instalado Google Chrome.
-
con lo anterior debería ser suficiente, si tienes errores descarga la versión de ChromeDriver correspondiente a tu versión de Chrome desde ChromeDriver.
-
Agrega el archivo
chromedriver
alPATH
o coloca el ejecutable en la misma carpeta del script.
form_data.json
: Contiene ejemplos de datos que serían enviados al formulario. Para efectos prácticos, estos datos son correctos y cumplen con los requisitos de la página para evitar conflictos. Sin embargo, este proceso podría mejorarse implementando validaciones adicionales en el código para verificar la veracidad y la estructura de la data enviada.
Ejemplo del contenido:
[
{
"name": "Ana Gómez",
"email": "[email protected]",
"phone": "987654321",
"address": "Avenida Siempre Viva 742, Springfield",
"installation_type": "Techo",
"roof_type": "Plano",
"roof_type_detail": "Zinc",
"found_us": "Facebook",
"file_path": "Examples/receipt.jpg",
"desired_value": 200000
}
]
locators.json
: Contiene los selectores de los elementos HTML del formulario:
{
"name_field": "input_1.3",
"email_field": "input_2",
"phone_field": "input_5",
"address_field": "input_20",
"installation_type": "input_24",
"roof_type": "input_25",
"roof_type_detail": "input_26",
"other_installation_detail": "input_29",
"slider_input": "input_27",
"found_us_dropdown": "input_34"
}
-
main.py
: Contiene el archivo principal el cual debe ser ejecutado. muy importante que tiene una flag llamadasubmit_form
que esta enFalse
para no enviar los formularios y enviar data falsa. Si se quiere enviar los formulario, es deccir, presionar el botón "Cotiza aquí" de la página web se debe cambiar a True el booleano. -
functions
:
python main.py
-
El programa utiliza Selenium para automatizar el llenado de formularios en la página
https://nikola.cl/empecemos
. -
Procesa cada caso definido en
form_data.json
y completa los campos según los datos proporcionados. -
Las boletas utilizadas en este programa son imágenes de prueba incluidas para mostrar de manera práctica cómo se implementa la carga de archivos.
-
Después de completar el formulario, el navegador se cierra automáticamente o envia el formulario dependiendo de si se desea.
- Si necesitas ajustar los selectores (no debería ser necesario) o agregar más, modifícalos directamente en
locators.json
. - Asegúrate de que si quieres agregar mas ejemplos en
form_data.json
tenga la estructura que se muestra en los ejemplos y que coincida con la página de la empresa .
- Implementar validaciones automáticas en el código para verificar la veracidad y estructura de los datos enviados antes de procesarlos.
- Agregar manejo de errores más robusto para casos en los que los datos proporcionados no cumplan con los requisitos del formulario.