Когда я использую ie.navigate дважды, документ остается прежним - PullRequest
0 голосов
/ 10 июня 2019

У меня следующий код (пробовал разные варианты, это самый новый):

Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
ie.navigate "URL1"
Do Until Not ie.Busy And ie.readyState = 4
    DoEvents
Loop

ie.document.getElementById("_58_login").Value = login
ie.document.getElementById("_58_password").Value = password
ie.document.getElementsByClassName("btn btn-primary")(0).Click


ie.navigate "URL2"
Do Until Not ie.Busy And ie.readyState = 4
    DoEvents
Loop

Set elements = ie.document.getElementsByTagName("title")
MsgBox elements(0).innerText

По сути, сначала он переходит на страницу входа, входит в систему, а затем переходит на нужную страницу с информацией, которую я хочу очистить. И браузер действительно переходит на вторую страницу правильно. Однако, хотя вторая страница загружена и с ней можно взаимодействовать, похоже, что «ie.document» все еще содержит страницу входа (msgbox отображает заголовок страницы входа, и я не могу получить GetElementsByTagName, который должен присутствовать на второй странице).

Я пытался использовать цикл DoEvents везде. Кроме того, я пытался использовать Application.wait, но это приводит к ошибке (метод приложения "wait" не выполнен 1004).

Так что я ожидаю: 1. Перейдите на страницу входа и войдите (нажмите кнопку). 2. Перейдите на другую страницу, нажмите некоторые кнопки (веб-сайт сильно написан на скрипте и использует скриптовые кнопки для дальнейшей навигации) и, наконец, получите таблицу с данными.

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