#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 за объяснение.