Trabajar con macro e IE Explorer

Necesito un apoyo vengo trabajando en una tarea de macro con IE estoy usando las siguiente sentencias para ingresar a una web y funciona normal pero cuando quiero avanzar a una de las opciones no funciona se queda en la página después del logeo estoy usando estas sentencias

IE.Document.all.Item("ruc").Value = Range("E6").Value
IE.Document.all.Item("usuario").Value = Range("E8").Value
IE.Document.all.Item("clave").Value = Range("E10").Value
Set Boton = IE.Document.getElementById("btnAceptar")

Estas opciones funcionan normal ya que encuentro los ID pero cuando elijo las opciones que están dentro de un DIV no me funciona, una vez logueado debería de avanzar hasta a opción requerida pero no avanza y estoy insetando estas opciones.

Set Boton2 = IE.Document.getElementById("divServicios")
Boton2.Click
Set Boton3 = IE.Document.getElementById("divOpcionServicio2")
Boton3.Click
Set Boton4 = IE.Document.getElementById("nivel1_11")
Boton4.Click
Set Boton5 = IE.Document.getElementById("nivel2_11_5")
Boton5.Click
Set Boton6 = IE.Document.getElementById("nivel3_11_5_4")
Boton6.Click
Set Boton7 = IE.Document.getElementById("nivel4_11_5_4_1_1")
Boton7.Click

2 respuestas

Respuesta
1

No sé si esto aporte algo a tu problema, ¿pero por que no intentas usar Selenium? Yo personalmente cuando tengo que automatizar trabajos en una web, uso Selenium. Tengo un proyecto que pasa toda la noche trabajando en una pagina web sin parar hasta que el usuario lo detenga en la mañana y continuar el trabajo manualmente, la idea del programa es que el trabajo se haga 24 horas sin parar.

Si no sabes que es Selenium te explico.

Selenium es un conjunto de herramientas y drivers para los navegadores como Chrome, Firefox, y hasta el mismo IE.

Es una librería que agregas a VBA y automatizas el navegador que quieras, como mismo lo estas haciendo pero mucho mejor y no solo con IE. (Yo personalmente lo uso con Chrome)

Lo agregas como una librería cualquiera:

Una vez que le agarras el gusto ya no querrás usar otro método. Si lo pruebas y vas teniendo dudas en el camino, puedes ir haciendo preguntas acá en Todoexpertos y te voy ayudando.

Si quieres probarlo, aquí esta el link: Descargar SeleniumBasic para Excel

Aquí te dejo un ejemplo de la sintaxis básica para comenzar a usarlo:

Declaras el objeto con el driver del navegador que quieras:

Public driver As New ChromeDriver

y ya luego empiezas a usarlo como quieras. Por ejemplo:

Driver. Start
Driver. AddArgument ("--disable-infobars")
driver.Window.Maximize
Driver.Get "https//www.google.com/"

Igual interactuas con los elementos con driver.FindElementByID o Class o Tag como tu quieras.

Yo lo prefiero, te abre muchas mas opciones a la hora de automatizar una web.

Se ve interesante pero como se puede usar para automatizar no he trabajado con eso y bueno no se mucho del tema sobre macros con web, probé tu código pero me sale este error.

Ah vale, olvide decirte, que después de la versión 2.0.9 de SeleniumBasic, no la han actualizado más, y por ende el paquete que descargas no trae el driver de Chrome actualizado.

Descarga el driver aquí: Chrome webdriver

Es un .exe no tienes que ejecutarlo, lo único que tienes que hacer, es pegarlo en la carpeta de instalación de Seleniuem, osea donde lo hayas instalado.

Ah por cierto, también puede ser porque no tienes los : en la dirección fíjate donde dice https/

debe decir https:/

Igual si ese driver te da problemas, usa el mio a ver: chromedriver

¡Gracias! si funciona bien ese driver ahora como seria el caso en vez de colocar el comando como IE.Document lo reemplazo por el driver.llitem

IE.Document.all.Item("ruc").Value = Range("E6").Value
IE.Document.all.Item("usuario").Value = Range("E8").Value
IE.Document.all.Item("clave").Value = Range("E10").Value
Set Boton = IE.Document.getElementById("btnAceptar")

Si puedes abre una pregunta nueva sobre como empezar a usar Selenium, y si puedes muéstrame un poco del HTML de la página. Honestamente si usé IE. Documente almenos una vez en mi vida fue mucho jajaja... SeleniumBasic lo descubrí hace años y desde entonces lo uso. No sé qué es lo que hace IE. Document. All. Item

¿Qué son esos elementos? ¿Son IDs? ¿Clases? ¿Names?

Usuario y Clave suena como un formulario de Login.

Con Selenium puedes directamente acceder al método Submit de los formularios online que procesen la información en PHP con el método POST o GET, por ejemplo:

driver.FindElementByClass("login").FindElementByName("usuario").Value = Range("E8").Value
driver.FindElementByClass("login").FindElementByName("clave").Value = Range("E10").Value
Driver. FindElementByClass("login"). FindElementByName("login"). Submit

Eso es solo un ejemplo ilustrativo eh, que no he visto el HTML de la pagina.

También en lugar de .Value se acepta .SendKeys

¡Gracias! Creare una nueva pregunta entonce para poder aprender a trabajar con selenium ya que con explorer demora en cargar las páginas

Respuesta
1

[Hola

Es complicado ayudarte sin ver la web, además si envías la web pero necesariamente hay que loguearse, igual super difícil ayudarte (así envíes el código de la web). De ser con logueo, quizá si creas un usuario "temporal" podamos ingresar, ver y aconsejarte qué hacer.

Abraham Valencia

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas