Недавно я написал сценарий Excel VBA для входа в систему и навигации по сайту в интрасети для загрузки отчета CSV. Он содержит некоторые ссылки и кнопки, которые мне нужно нажимать внутри iframe. Потребовалось некоторое усилие, чтобы выяснить материал iframe, но это работает. Я до сих пор не знаю, как нажать «Сохранить», если диалоговое окно загрузки файла не является активным окном, но это на другой день.
Я в процессе преобразования этого сценария в VBS и запустилв это сообщение об ошибке:
Вот соответствующие фрагменты кода:
Код VBA (это работает)
Set ie = New InternetExplorer
ie.Visible = True
...
Dim iframeDoc As MSHTML.HTMLDocument
Set iframeDoc = ie.document.frames("fmReports").document
' select the custom report
iframeDoc.getElementById("tvCustomReport").Click
Application.Wait (Now + TimeValue("00:00:03"))
' run the report
iframeDoc.getElementById("btnRunReport").Click
Код VBS (выше приведено диалоговое окно с ошибкой)
Dim oIE
Set oIE = CreateObject("InternetExplorer.Application")
oIE.Visible = True
...
Dim iframeDoc
Set iframeDoc = oIE.document.getElementById("fmReports").ContentWindow.Document
' select the custom report
iframeDoc.getElementById("tvCustomReport").Click
WScript.Sleep 3000 'wait here just in case
' run the report
iframeDoc.getElementById("btnRunReport").Click
Вопросы / мысли
Я отключил почти все функции безопасности, которые можно найти в IE.
Это разные домены? (Возможно, проблема XSS) Основной URL сайта интрасети - http://192.168.0.111/app2019, в то время как содержание URL-адреса iframe - http://192.168.0.111/app2018.
Строка 49 (ссылка на скриншот) моего полного сценария:вторая строка во фрагменте VBS (Установите iframeDoc = ...)
Я что-то упускаю из виду?