Obtener URL actual al navegar con Firefox

Estoy intentando hacer una especie de "operador virtual" que me permita navegar por una página, abierta previamente, con el navegador Mozilla Firefox. Tras hacer la selección el resultado puede ser que el navegador cambie de página o que se mantenga en la misma y querría contemplar de forma distinta esas dos posibilidades. El código VBA (lanzado desde Excel) sería algo como:

Sub Prueba()
    Dim urlcorrecta as String
    Dim urlactual as String
    Set urlcorrecta = "https://<el valor que interese>"
    AppActivate ("Mozilla Firefox")
    pausa 1
    SendKeys "{TAB}"
    pausa 1
    SendKeys "+{TAB}"
    pausa 1
    SendKeys "{ENTER}"
    pausa 5
    urlactual = URL
    If urlactual = urlcorrecta Then
        SendKeys "{TAB 8}"
        pausa 2
        SendKeys " "
        pausa 2
        SendKeys "{DOWN}"
        pausa 1
        SendKeys "{ENTER}"
        pausa 1
        SendKeys "{TAB}"
        pausa 1
        SendKeys "{ENTER}"
    End If
End Sub
Private Function pausa(tiempopausa)
    Dim inicio as Integer
    inicio = Timer
    Do While Timer < inicio + tiempopausa
        DoEvents
    Loop
End Function
Private Function URL()
Dim myUrl as String
   <código a determinar>
URL = myUrl
End Function

1 respuesta

Respuesta
2

Como nadie ha respondido he seguido investigando y al final encontré una solución. Es esta:

Sub Prueba()
    Dim urlcorrecta As String
    Dim urlactual As String
    urlcorrecta = "https://<la URL que interese>"
    AppActivate ("Mozilla Firefox")
    pausa 1
    SendKeys "{TAB}"
    pausa 1
    SendKeys "+{TAB}"
    pausa 1
    SendKeys "{ENTER}"
    Pausa 1
    SendKeys "^i"
    Pausa 1
    SendKeys "{TAB 2}"
    Pausa 1
    SendKeys "^c"
    Pausa 5
    SendKeys "{ESCAPE}"
    urlactual = URL
    If urlactual = urlcorrecta Then
        SendKeys "{TAB 8}"
        pausa 2
        SendKeys " "
        pausa 2
        SendKeys "{DOWN}"
        pausa 1
        SendKeys "{ENTER}"
        pausa 1
        SendKeys "{TAB}"
        pausa 1
        SendKeys "{ENTER}"
    End If
End Sub
Public Function pausa(tiempopausa)
    Dim inicio, final
    inicio = Timer
    Do While Timer < inicio + tiempopausa
        DoEvents
    Loop
End Function
Private Function URL()
  Set objHTML = CreateObject("htmlfile")
  URL = objHTML.ParentWindow.ClipboardData.GetData("text")
End Function

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas