Контекст
В настоящее время я пытаюсь создать инструмент для просмотра веб-страниц для определенного веб-сайта.
Механизм входа на веб-сайты представляет собой проверку физического файланаходится на компьютере, который вызывается через надстройку Internet Explorer, которая требует от меня использовать VBA, а не Python и т. д.
Кроме того, структура сайта с использованием XML также нецелесообразна.
Проблема
При входе на веб-сайт (который принадлежит правительству) возникает странная причуда, когда после входа в систему он сообщает вам, что произошел сбой, после чего вы простоснова войдите в систему из того же окна (просто нажмите «Назад» и введите свои данные второй раз), после чего он успешно войдет в систему.
При загрузке веб-сайта также требуется, чтобы были включены ваши типичные настройки, что и определяетиспользование InternetExplorerMedium или вызов оболочки.
Когда я запускаю процесс, я обычно использую .goback как часть моего с ie statОднако, когда я пытаюсь это сделать, я получаю отключенную ошибку от объекта.Кроме того, если я пытаюсь запустить .navigate по той же ссылке, я получаю ту же ошибку.В частности:
Run-time error '-2147417848 (80010108)':
Automation error
The object invoked has disconnected from its clients
Предыдущая строка кода представляет собой отправку формы, и я не уверен, вызывает ли это вызов отключение от Internet Explorer?
html.forms(0).submit
Попытки:
У меня есть:
Попытка запустить этот процесс в InternetExplorerMedium и shellcall безуспешно (не удается загрузить сайт без ошибки времени выполнения)
попытался использовать .goback безуспешно (ошибка отключения).
прикреплен для перехода к исходной ссылке безуспешно (ошибка отключения).
включал паузы на несколько секунд между попытками загрузки страницы (без изменений, ошибка отключения)
попытался выполнить любую функцию с помощью IE(ошибка разъединения).
По какой-то причине он появляется после того, как я использовал:
html.forms(0).submit
сеанс IE отключается.
Какпоследний способ, я попытался отправить форму, нажав кнопкунажмите кнопку джина (продолжить) и используйте вызовы .fireEvent
, однако по какой-либо причине ни один из этих параметров не работает (нет ошибки, просто нет взаимодействия с сеансом IE.
Эта кнопка имеет следующую информацию элемента проверки,в случае, если может быть сделано другое предложение:
<button tabindex="10" title="Continue authentication with selected credential"
class="continueButton actionButton" id="imgContinue" role="button"
style='background-image: url("/S001v4.0/Images/buttonGreenTick.png");
' onclick="Continue(this);" onfocus="continueFocused=true;"
onblur="cancelFocused=false;" type="button">CONTINUE</button>
Ниже приведен код соответствующего раздела, URL-адрес опущен, поскольку это внутренний правительственный сайт, к которому никто не имеет доступа в любом случае:
Sub StackOverflowCode()
Dim ie As InternetExplorer
Set ie = New InternetExplorer
Dim UrlNavi As String
UrlNavi = Sheets("EngineRoom").Range("B2")
With ie
.navigate UrlNavi
Application.Wait (Now + TimeValue("00:00:05"))
.Visible = True
.AddressBar = False
Do While ie.readyState <> READYSTATE_COMPLETE
DoEvents
Loop
Dim html As HTMLDocument
Set html = ie.document
html.getElementById("ctl00_ContentPlaceHolder1_PassiveIdentityProvidersRepeater_ctl00_RealmButton").Click
html.getElementById("txtPassword").innerText = Sheets("engineroom").Range("B4").Value
html.forms(0).submit
' Anything past here is a disconnection error
.GoBack
.navigate UrlNavi
Do While ie.readyState <> READYSTATE_COMPLETE
DoEvents
Loop
html.getElementById("txtPassword").innerText = Sheets("engineroom").Range("B4").Value
html.forms(0).submit
End With
End Sub
Следует отметить, что код with ie не заканчивается до второй последней строки вышеуказанного кода.
Ожидаемый результат
IE должен бытьзапущен, окно показано как видимое, панель навигации скрыта.Веб-сайт должен войти в систему, вернуться к предыдущему (исходный URL) и войти снова.
Версии программного обеспечения
Excel 2016,Internet Explorer 11.0.115
Ссылки включены:
Visual Basic для приложений, библиотека объектов Microsoft Excel 16.0, OLEАвтоматизация, библиотека объектов Microsoft Office 16.0, библиотека объектов Microsoft HTML, Microsoft XML, V6.0, элементы управления Microsoft Internet, библиотека объектов Microsoft Forms 2.0