Busco un código VBA para Ingresar en Página WEB para búsqueda

Deseo ingresar a esta página

http://www.databook-premium.com.ec/macvasquez-premium/index.php/welcome, pero no consigo darle click al boton acceder parece que es variable su codigo.

1 respuesta

Respuesta
1

[Hola

Pues no, no varía su "id", es el mismo siempre:

Sub Clickaboton()
Dim IE As Object
Set IE = CreateObject("InternetExplorer.Application")
IE.navigate "http://www.databook-premium.com.ec/macvasquez-premium/index.php/welcome"
Do Until IE.readyState = 4
    DoEvents
Loop
Application.Wait (Now + TimeValue("0:00:01"))
With IE
    .Document.getElementById("create-user").Click
    .Visible = True
End With
Set IE = Nothing
End Sub

Abraham Valencia

Hola, hasta aquí logre que el código ingrese el usuario y contraseña, pero al momento de rellenar el siguiente campo "cedula" me indica "se necesita objeto" al parecer se debe que la dirección url cambia al fina de "welcome2 a "home".

Option Explicit

Sub ExtraerDatos()

Dim IE As Object

Application.ScreenUpdating = False

Set IE = CreateObject("InternetExplorer.Application")

IE.navigate "http://www.databook-premium.com.ec/macvasquez-premium/index.php/welcome"
IE.Visible = True

Application.Wait (Now + TimeValue("0:00:01"))

With IE
.Document.getElementById("create-user").Click
.Document.getElementById("name").Value = "ZOILAVASQUEZ"
.Document.getElementById("password").Value = "COBR5VASUEQ"
.Document.getElementsByTagName("button")(2).Click

End With

Set IE = Nothing

Application.ScreenUpdating = True

End Sub

[Hola nuevamente

Efectivamente, al ser otra la dirección web, hay que hacer algunos cambios. Mira el ejemplo:

Sub ExtraerDatos()
Dim IE As Object
Set IE = CreateObject("InternetExplorer.Application")
IE.navigate "http://www.databook-premium.com.ec/macvasquez-premium/index.php/welcome"
IE.Visible = True
Application.Wait (Now + TimeValue("0:00:01"))
Do Until IE.ReadyState = 4
    DoEvents
Loop
With IE
.Document.getElementById("create-user").Click
.Document.getElementById("name").Value = "ZOILAVASQUEZ"
.Document.getElementById("password").Value = "COBR5VASUEQ"
.Document.getElementsByTagName("button")(2).Click
End With
Do While IE.Busy: DoEvents: Loop
Do Until IE.ReadyState = READYSTATE_COMPLETE: DoEvents: Loop
IE.navigate "http://www.databook-premium.com.ec/macvasquez-premium/index.php/home"
Do Until IE.ReadyState = 4
    DoEvents
Loop
IE.Document.getElementById("cedula").Value = "Mira ahora"
Set IE = Nothing
End Sub

Comentas

Abraham Valencia

PD: Sugiero cerrar tus otras preguntas

Hola, no consigo rellenar el campo cedula

¿Qué error te dio? ¿En qué línea? ¿Cómo lo intentaste? ¿Qué modificaste? Etc. etc. etc. Da detalles para poder ayudarte.

Abraham Valencia

La macro corre sin dar error, pero al llegar a la línea para llenar el campo "cédula" no reconoce el objeto y no lo llena, la url queda sin cursor. Cambie el tipo de elemento por id y class pero tampoco. Intente con otro código pero no reconoce el objeto de la segunda url. Acorte el tiempo de carga y alli me arroja el mensaje "se necesita objeto". En vez de "="utilice "<> READYSTATE_COMPLETE" , y me arroja " variable no establecida".

A ver, prueba la última macro que te he mandado TAL CUAL, sin cambiar nada. Previamente activa las referencias a "Microsoft Internet Controls".

¿Logro hacer lo planteado? La respuesta debe ser "sí" por lo que, lo más probable, es que el problema sea en algún cambio que hayas hecho pero que no has mostrado.

Abraham Valencia

Hola, ayer ya lo intente, pero no funciona, cuando pauso o cierro el navegador (después de esperar 15 minutos) depuro y me indica un problema en Do Until IE.ReadyState = 4 DoEvents, si borro esta linea, me indica que se necesita un objeto.

Están activas las referencias.

Antes de correr la macro debes de cerrar la sesión de manera MANUAL, es decir, que pasen los 15 minutos, entra (no con la macro, sino directamente), entras con tu usuario y clave, una vez ahí, CIERRAS la sesión. Listo, prueba la macro y no te saldrá el error del objeto.

Si no haces eso, seguirás teniendo el dilema, no es la macro, es el sistema de esa web.

Ah, ojo, para correr esa macro nuevamente, una vez abierto la web, como ese código no tiene cierre de sesión, hazlo directo en la web tú. Ya después puedes agregar el cierre de sesión con código.

Abraham Valencia

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas