es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo subir un archivo a Dropzone utilizando código Python automáticamente.

Estoy intentando escribir un código para enviar un formulario web con código Python. Estoy usando Selenium, que es una gran biblioteca. Funciona bien con elementos normales.
Para las zonas de carga, no puedo encontrar una solución. Las zonas de carga no son elementos de entrada, lo que hace difícil cargar archivos en ellas usando Selenium.

Específicamente estoy buscando el siguiente formulario web:
https://gnps-quickstart.ucsd.edu/featurebasednetworking

Hay algunas zonas de carga en la parte inferior. La segunda no parece estar conectada con ningún campo de entrada oculto.

Cualquier idea o solución sería muy apreciada.

Aquí está mi código:

from selenium import webdriver
import time;

web = webdriver.Chrome('chromedriver.exe');

web.get('https://gnps-quickstart.ucsd.edu/');

time.sleep(2);

optional_email_field = web.find_element_by_xpath('//*[@id="email"]');

email_id = 'email@domain.edu';

optional_email_field.send_keys(email_id);

mgf_field = web.find_element_by_xpath('/html/body/div[1]/div/div[5]/div[2]/div')

mgf_file = 'nov_10_1.mgf';

mgf_field.send_keys(mgf_file);

form_submit_field = web.find_element_by_xpath('//*[@id="analyzebutton"]');
time.sleep(3)
form_submit_field.click();

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Desafortunadamente, no es posible cargar archivos en dropzones utilizando Selenium, ya que los dropzones no son elementos de entrada. Sin embargo, hay algunos trucos que podrías intentar:

    1. Usa AutoIT o Sikuli para automatizar el proceso de carga de archivos. Esto implica la creación de un script separado que interactúa con la caja de carga de archivos por separado del script de Selenium.
    2. Cambia el contenedor de dropzone a un campo de entrada de archivo tradicional. Podrías intentar inspeccionar el código fuente para ver si hay una opción para cambiar el dropzone a un campo de entrada de archivo tradicional.

    3. Contacta a los desarrolladores del formulario web y pregúntales si pueden proporcionar una API o cualquier forma programática de cargar archivos en el dropzone.

    Desafortunadamente, no hay una solución única para trabajar con dropzones en Selenium, por lo que puede requerir un poco de experimentación y creatividad para encontrar una solución que funcione para tu caso de uso específico.

Comments are closed.