Saltar al contenido

Adjuntar un archivo a cuadro de dialogo (Subida de archivo)


Recommended Posts

publicado

Buenas foro.

Mediante scraping me logueo en una web a traves de internet explorer.

Llego hasta un cuadro de dialogo (Pulsando un boton) para subir un archivo.

Se me ocurre subir la ruta mediante la funcion sendkeys, pero como es tan volatil, me pregunto si no hay alguna funcion para subir, adjuntar al cuadro de dialgo el archivo

publicado
Hace 6 minutos , Abraham Valencia dijo:

Hola

No das los suficientes detalles como para tratar de ayudarte. Saludos.

Hola @Abraham Valencia en mitad de la macro me encuentro con un cuadro de dialogo para seleccionar un directorio y luego un archivo para subir. Decir que he llegado hasta aqui pulsando un boton con

getElementsByName("file").click

lo que busco es seleccionar la carpeta (ruta) y archivo mediante vba. Estoy mirando la propiedad

Propiedad FileDialog.InitialFileName

pero es para windows, y necesito que sea para el internet explorer

publicado

Hola  nuevamente

Con lo poco que has planteado, sigue siendo imposible ayudarte. ¿Cuál es la web? De tener usuario y clave ¿Puedes pasar una que se use para pruebas? Dentro de esa web ¿Cómo llegar a lo de tu dilema? Ojo, Internet Explorer no tiene un evento de carga de archivos por lo que probablemente sea un combo que lo hace a través de JavaScript o similar, pero para saber/ver si se puede hacer algo, hay que verlo.

Ah, por último pero no menos importante, no olvides que Internet Explorer es ya tecnología desfasada por Microsoft y que incluso se torna incompatible con algunos sistemas operativos y si bien aún se puede manejar como objeto en VBA, es muy probable que hasta eso sea imposible dentro de poco.

publicado
Hace 3 horas, Abraham Valencia dijo:

Hola  nuevamente

Con lo poco que has planteado, sigue siendo imposible ayudarte. ¿Cuál es la web? De tener usuario y clave ¿Puedes pasar una que se use para pruebas? Dentro de esa web ¿Cómo llegar a lo de tu dilema? Ojo, Internet Explorer no tiene un evento de carga de archivos por lo que probablemente sea un combo que lo hace a través de JavaScript o similar, pero para saber/ver si se puede hacer algo, hay que verlo.

Ah, por último pero no menos importante, no olvides que Internet Explorer es ya tecnología desfasada por Microsoft y que incluso se torna incompatible con algunos sistemas operativos y si bien aún se puede manejar como objeto en VBA, es muy probable que hasta eso sea imposible dentro de poco.

Hola Abraham,  te paso un ejemplo

Sub video()

Application.DisplayAlerts = False
Dim IE As Object
Set IE = CreateObject("InternetExplorer.application")
IE.Visible = True
IE.Navigate "https://www.veed.io/es-ES/herramientas/cortar-video"
Do
    DoEvents
Loop Until IE.ReadyState = 4

Set y = IE.Document.getElementsByClassName("chakra-button__icon css-1hzyiq5")
y(0).Click
Application.Wait (Now + TimeValue("00:00:05"))
Set x = IE.Document.getElementsByName("browse-link")
x(0).Click

Application.DisplayAlerts = True
End Sub

La original tiene clave y contraseña, pero creo que este puede valer. Aqui se llega igual, a un browser para suvir un archivo

Se lo de Internet Explorer, ojala se pudiera trabajar con mozilla o chrome, aparte que es un ordenador de empresa que esta muy limitado

publicado

Estimado, repito algo que parece no leíste y/o no entendiste: Ojo, Internet Explorer no tiene un evento de carga de archivos por lo que probablemente sea un combo que lo hace a través de JavaScript o similar, pero para saber/ver si se puede hacer algo, hay que verlo. O sea, con tu macro no se puede saber qué hay y/o cómo controlarlo. No depende para nada de tu macro, hay que ver qué hay ahí para saber qué hacer y/o si se puede realmente hacer algo.

publicado
Hace 3 horas, Abraham Valencia dijo:

Estimado, repito algo que parece no leíste y/o no entendiste: Ojo, Internet Explorer no tiene un evento de carga de archivos por lo que probablemente sea un combo que lo hace a través de JavaScript o similar, pero para saber/ver si se puede hacer algo, hay que verlo. O sea, con tu macro no se puede saber qué hay y/o cómo controlarlo. No depende para nada de tu macro, hay que ver qué hay ahí para saber qué hacer y/o si se puede realmente hacer algo.

Vale, ahora si te entendi, disculpa... Inspeccionando el elemento de subir el archivo, hay un evento, pulso y me salen 5 lineas, no se si te refieres a eso...

publicado
En 29/7/2022 at 18:00 , Abraham Valencia dijo:

¿Qué tipo de evento? ¿Llama a alguna función de JavaScript? Etc.

De esto entiendo ya poco

Me salen los siguientes desplegables:

Blur: function() {
  qq(options.element).removeClass(options.focusClass);
}

Change: function() {
  options.onChange(input);
}

Foxus: function() {
  qq(options.element).addClass(options.focusClass);

Mouseout: function() {
  qq(options.element).removeClass(options.hoverClass);
}

Mouseover: function() {
  qq(options.element).addClass(options.hoverClass);
}

y en cada desplegable una direccion de pagina web, que abriendo en depurador:

Blur: disposeSupport.attach(input, "blur", function() {
                qq(options.element).removeClass(options.focusClass);
            });

Change: options.element.appendChild(input);
            disposeSupport.attach(input, "change", function() {
                options.onChange(input);
            });

Foxus: disposeSupport.attach(input, "focus", function() {
                qq(options.element).addClass(options.focusClass);
            });
Mouseout: disposeSupport.attach(input, "focus", function() {
                qq(options.element).addClass(options.focusClass);
            });

Mouseover:  disposeSupport.attach(input, "mouseover", function() {
                qq(options.element).addClass(options.hoverClass);
            });

 

publicado

Tal como me imaginaba, para adjuntar el archivo usan JavaScript, es decir, tendrías que intentar controlar esa función para lograrlo, para poder ayudarte tendría que ver la web y de ese modo verificar si es posible o no.

publicado
Hace 21 minutos , Abraham Valencia dijo:

Tal como me imaginaba, para adjuntar el archivo usan JavaScript, es decir, tendrías que intentar controlar esa función para lograrlo, para poder ayudarte tendría que ver la web y de ese modo verificar si es posible o no.

Agradecido @Abraham Valencia pero no puedo dar acceso a nadie. Es del trabajo.

Lo dicho, mil gracias e investigaré algo de JavaScript.

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.