** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - ViaMichelin
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

ViaMichelin

 Responder Responder
Autor
Mensaje
main Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 31/Agosto/2009
Localización: OVIEDO
Estado: Sin conexión
Puntos: 1045
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita main Cita  ResponderRespuesta Enlace directo a este mensaje Tema: ViaMichelin
    Enviado: 25/Noviembre/2019 a las 14:14
Acces_2010 vs Windows_7
Buenos dias al grupo:
Estamos tratando de pasar, desde un formulario, algunos parámetros al formulario web de viamichelin con el fin de obtener una determinada ruta.
Y apelo a vuestra generosidad, como siempre, a ver si me echais una mano
Necesito conocer el nombre del boton "+" para añadir una etapa, asi como el nombre y su indice del cuadro de texto donde se van añadiendo las sucesivas etapas.
Y por último el nombre del boton "Buscar" para simular un click y poder concluir el proceso de generación de la ruta.
El problema es que los antiguos nombres que tenia ya no coinciden con los actuales.
De momento solo me funciona la entrada del lugar de partida y la del lugar de destino
Y esto es lo que hay:

Public Sub RutaMichelin()
Dim i As Integer
Dim IE As New InternetExplorer
Dim IEDoc As HTMLDocument
Dim InputmichelinZoneTexte As HTMLInputElement
Dim InputmichelinBouton As HTMLFormElement

IE.Navigate "http://www.viamichelin.es/web/Itinerarios"
Do While IE.ReadyState = 4: DoEvents: Loop   'Do While
Do Until IE.ReadyState = 4: DoEvents: Loop   'Do Until
IE.visible = True
With IE
    For i = 1 To 10
        DoEvents
    Next
    Set IEDoc = IE.Document
    'Señalamos nuestro cuadro de texto de PARTIDA
    Set InputmichelinZoneTexte = IEDoc.all("Departure")
    'Definimos el texto que queremos colocar dentro
    InputmichelinZoneTexte.value = "33006 Oviedo"
    'Señalamos nuestro cuadro de texto de DESTINO
    Set InputmichelinZoneTexte = IEDoc.all("Arrival")
    'Definimos el texto que queremos colocar dentro
    InputmichelinZoneTexte.value = "28002 MADRID"
   
'    De aqui en adelante ya no me reconoce nada
    'Señalamos nuestro botón añadir etapa
    Set InputmichelinBouton = IEDoc.Forms("button.add-step")
   'Y simulamos un click
    InputmichelinBouton.submit
----------------------------------------   
    -------------------------------------

    'Esperamos el fin de la búsqueda
End With
Set IE = Nothing
Set IEDoc = Nothing
End Sub

Saludos


Editado por main - 25/Noviembre/2019 a las 14:31
Arriba
lbauluz Ver desplegable
Administrador
Administrador
Avatar

Unido: 29/Marzo/2005
Localización: Binghamton NY.
Estado: en línea
Puntos: 3431
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita lbauluz Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 26/Noviembre/2019 a las 14:48
Pues el + que yo sepa es el ASCII 43, pero no me queda nada claro para qué lo necesitas.

Luis


El Búho es mi ídolo caido
Arriba
guarracuco Ver desplegable
Moderador
Moderador
Avatar

Unido: 24/Abril/2004
Localización: EEUU
Estado: Sin conexión
Puntos: 3090
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita guarracuco Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 26/Noviembre/2019 a las 14:56
Lo más seguro es que ahora tenga un ID o una clase. Click con botón derecho en el elemento y fíjate si tiene Eventos.
https://tucondominioaldia.net
Arriba
guarracuco Ver desplegable
Moderador
Moderador
Avatar

Unido: 24/Abril/2004
Localización: EEUU
Estado: Sin conexión
Puntos: 3090
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita guarracuco Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 26/Noviembre/2019 a las 20:14
Efectivamente, el buton tiene una clase. 
Prueba este par de líneas, te dejará avanzar.

   Set InputmichelinBouton = IEDoc.querySelector(".searchbox-submit-button")
   
    InputmichelinBouton.Click
https://tucondominioaldia.net
Arriba
main Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 31/Agosto/2009
Localización: OVIEDO
Estado: Sin conexión
Puntos: 1045
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita main Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 26/Noviembre/2019 a las 21:29
Hola Guarracuco
Gracias por tu interes

El boton "+" es el que, al hacer click sobre el, nos va solicitando nuevas etapas(direcciones). Y una vez que hemos rellenado las etapas que deseamos hay que pulsar sobre el boton "Buscar" para que genere la ruta.
Y todo eso es lo que pretendo automatizar
En principio, con la instrucción que me pones, no parece que el boton "+" coja el foco
Saludos Y gracias de nuevo
Arriba
guarracuco Ver desplegable
Moderador
Moderador
Avatar

Unido: 24/Abril/2004
Localización: EEUU
Estado: Sin conexión
Puntos: 3090
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita guarracuco Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 26/Noviembre/2019 a las 23:10
Cambia
 Set InputmichelinBouton = IEDoc.querySelector(".searchbox-submit-button")

por

 Set InputmichelinBouton = IEDoc.querySelector(".add-step")
https://tucondominioaldia.net
Arriba
main Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 31/Agosto/2009
Localización: OVIEDO
Estado: Sin conexión
Puntos: 1045
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita main Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 27/Noviembre/2019 a las 13:12
Perfecto, ahora Sí. Hug
Muchas gracias guarracuco
Ya estaba empezando a construir la URL por la fuerza bruta
En definitiva queda asi:
Public Sub RutaMichelin()
Dim i As Integer
Dim IE As New InternetExplorer
Dim IEDoc As HTMLDocument
Dim InputmichelinZoneTexte As HTMLInputElement
Dim InputmichelinBouton As HTMLFormElement
IE.Navigate "http://www.viamichelin.es/web/Itinerarios"
Do While IE.ReadyState = 4: DoEvents: Loop   'Do While
Do Until IE.ReadyState = 4: DoEvents: Loop   'Do Until
IE.visible = True
With IE
    For i = 1 To 10
        DoEvents
    Next
    Set IEDoc = IE.Document
    'Señalamos nuestro cuadro de texto de SALIDA
    Set InputmichelinZoneTexte = IEDoc.all("Departure")
    'Definimos el texto que queremos colocar dentro
    InputmichelinZoneTexte.value = "Oviedo España"
    'Señalamos nuestro cuadro de texto de DESTINO
    Set InputmichelinZoneTexte = IEDoc.all("Arrival")
    'Definimos el texto que queremos colocar dentro
    InputmichelinZoneTexte.value = "MADRID España"
    'Señalamos nuestro boton de añadir Etapa y hacemos un click
    Set InputmichelinBouton = IEDoc.querySelector(".add-step")
    InputmichelinBouton.Click
    'Señalamos nuestra primera etapa y colocamo su valor
    Set InputmichelinZoneTexte = IEDoc.all("step-1")
    InputmichelinZoneTexte.value = "Santander España"
    'Señalamos nuestro boton de añadir Etapa y hacemos un click
    Set InputmichelinBouton = IEDoc.querySelector(".add-step")
    InputmichelinBouton.Click
    'Señalamos nuestra segunda etapa y colocamo su valor
    Set InputmichelinZoneTexte = IEDoc.all("step-2")
    InputmichelinZoneTexte.value = "Valladolid España"
    'Señalamos el boton busacr y hacemos un click
    Set InputmichelinBouton = IEDoc.querySelector(".searchbox-submit-button")
    InputmichelinBouton.Click
    'Esperamos el fin de la búsqueda
End With
Set IE = Nothing
Set IEDoc = Nothing
End Sub
'Para quien quiera construir una Url directamente por la fuerza bruta
'https://www.viamichelin.es/web/Itinerarios?departure=33006 Oviedo&step-1=24001 León España&step-2=Valladolid España&step-3=Porto Portugal&arrival=28002 MADRID

Gracias de nuevo Guarracuco
Saludos a todos
Se puede cerrar el tema


Editado por main - 27/Noviembre/2019 a las 13:20
Arriba
guarracuco Ver desplegable
Moderador
Moderador
Avatar

Unido: 24/Abril/2004
Localización: EEUU
Estado: Sin conexión
Puntos: 3090
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita guarracuco Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 27/Noviembre/2019 a las 13:29
QuerySelector te permite seleccionar un elemento con una clase, en caso de más de uno tenga esa clase. Muy importante es que es IExplorer lo acepta.
https://tucondominioaldia.net
Arriba
main Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 31/Agosto/2009
Localización: OVIEDO
Estado: Sin conexión
Puntos: 1045
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita main Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 27/Noviembre/2019 a las 14:35
Gracias por la informacion
Bueno, que una vez conseguido veo que aparecen bajo el mapa datos ciertamente utiles tales como el tiempo estimado de la ruta, Kilómetros de la ruta y el coste estimado.
A ver si alguien se decide a exponer como se obtienen (extraen) esos datos

Saludos a todos



Editado por main - 27/Noviembre/2019 a las 14:38
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable