Методы объекта IWebBrowser2 терпят неудачу - PullRequest
0 голосов
/ 24 января 2019

Я работаю над более длинным сценарием для Access, и в какой-то момент необходимо проверить веб-сервис на наличие последней версии файла (имя файла).Этот веб-сервис доступен только через браузер, где необходимо пройти проверку подлинности.Мне уже удалось открыть окно Internet Explorer (которое видно, хотя и не должно).Однако после этого я получаю ошибку

Метод «Занят» объекта «IWebBrowser2» не удался

Прямо сейчас у меня есть следующий код:

Dim appIE As Object
Dim sURL as String, infoStr as String
Set appIE = GetObject("new:{D5E8041D-920F-45e9-B8FB-B1DEB82C6E5E}") 'class id of InternetExplorerMedium
sURL = "https://webservice.example.com:1234/Server/test.jsp?parameter=value"
With appIE
    .Navigate sURL, Headers:=CreateBasicAuthHeader("MyUsername", "MyPassword")
    .Visible = False
End With

Do While appIE.Busy Or appIE.ReadyState <> 4
    DoEvents
Loop

infoStr = appIE.Document.getElementsByTagName("body").item.innerText

, которая работает хорошо до строки:

Do While appIE.Busy Or appIE.ReadyState <> 4

Если я выйду из цикла, появится такая же ошибка, но для «Документа» вместо «Занят» в строке infoStr = appIE.Document.getElementsByTagName("body").item.innerText.Учитывая, что .Visible = False также не оказывает влияния (я вижу окно браузера), я думаю, что любая операция на appIE после .Navigate не работает.Но я понятия не имею, почему.

После некоторого поиска после указанной ошибки я нашел 3 возможных решения, но ни одно из них не удалось.

  1. Использование свойств .Busy или .ReadyState для предотвращения продолжения макроса, пока браузер не полностью загрузил сайт.Что я, очевидно, уже делаю.
  2. Использование Internet Explorer на среднем уровне целостности.Что я тоже уже делаю.
  3. Поиск в диспетчере задач любых "потерянных" процессов IE.Их нет.

Любая помощь или идея очень ценится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...