Как получить значения с определенной веб-страницы, открытой в браузере Firefox

#vba

#vba

Вопрос:

Я использую AppActivate, чтобы сосредоточиться на веб-странице, которая уже открыта в Firefox (не хочу открывать новую вкладку или другой экземпляр Firefox). С этой вкладки я хотел бы скопировать определенные значения с помощью getElementById и вставить на новый лист для отправки по электронной почте. Кто-нибудь, пожалуйста, может помочь? Я пробовал разные способы, но до сих пор ни один не работал.

 Sub startFirefox()
    Dim appfile As String
    Dim fftask As Double

    appfile = "Firefox"
    On Error Resume Next
    AppActivate "Firefox"
        If Err <> 0 Then
            Err = 0
            fftask = Shell(appfile, 1)
            If Err <> 0 Then MsgBox "Cannot start FF" 'if firefox is not open going to open a new instance
        End If

    '2nd part that i need to get the values from web page
    Dim varA, Url As String
    Url = "example"
    Dim Site As Object
    Set Site = CreateObject("firefox.application")

    Dim oHTMLDoc As Object
    Set oHTMLDoc = Site.Document
    varA = oHTMLDoc.getElementById("X5").Value

    MsgBox varA  'here is not showing any value. I put the msgbox just to see if is getting any value
End Sub
  

Комментарии:

1. Почему бы просто не автоматизировать с помощью selenium basic и не автоматизировать FF таким образом?

2. @Qharr, В компании мы не можем использовать все приложения, которые хотим. У нас есть внутренний список приложений authorizade, которые можно установить на компьютеры.

3. Можете ли вы отправить запрос? Разрешено ли вам использовать python?

Ответ №1:

Не существует такого понятия, как Firefox.Application . Так что это никогда не сработает.

Программисты используют Internet Explorer — программируемый браузер. Поэтому используйте Set site = CreateObject("InternetExplorer.Application")

AppActivate не требуется при использовании COM и имеет большой набор правил, препятствующих его работе с программами (он разработан для ПРЕДОТВРАЩЕНИЯ кражи фокуса программами).

Комментарии:

1. Спасибо @Noodles за объяснение.