Как ввести данные в веб-сайт Inte rnet Explorer? - PullRequest
1 голос
/ 07 января 2020

Я пытаюсь ввести информацию в веб-форму Inte rnet Explorer 11. Веб-сайт / форма была разработана долгое время go (около 15-20 лет). Доступ к веб-сайту возможен только через Inte rnet Explorer.

Я не могу поделиться веб-сайтом / исходным кодом, поскольку он является внутренним для моей компании.

Я нашел решение в Интернете, но ни один не работал (я пробовал много разных версий).

Я хочу войти в систему, затем go на нескольких страницах ввода информации, нажимая кнопку Далее / Отправить на каждом этапе. У меня не получается после входа в систему.

У меня есть следующие ссылки в Excel:

Microsoft Inte rnet Элементы управления, Microsoft HTML Библиотека объектов, Microsoft XML, v6.0

Я следуя инструкции мудрой совы https://www.youtube.com/watch?v=dShR33CdlY8. Пройдите примерно через 17 минут, чтобы увидеть, где я получил код.

Я получил сообщение об ошибке в строке htmlinput.Value = "excel".

Сообщение об ошибке было

переменная объекта или с не установленной переменной блока - Ошибка времени выполнения ' 91 '

Sub navigate_website()

Dim ie As New SHDocVw.InternetExplorer
Dim htmldoc As MSHTML.HTMLDocument
Dim htmlinput As MSHTML.IHTMLElement

ie.Visible = True
ie.navigate Sheet1.Range("C2").Text

Do While ie.Busy Or ie.readyState <> READYSTATE_COMPLETE
    DoEvents
Loop

'enter in userid
ie.document.forms("formsamplename").elements("usedid").Value = ThisWorkbook.Sheets("sheet1").Range("B6")
'enter in password
ie.document.forms("formsamplename").elements("userpassword").Value = ThisWorkbook.Sheets("sheet1").Range("B7")
'click the login button
ie.document.forms("formsamplename").elements("cmdSubmit").Click

Do While ie.Busy Or ie.readyState <> READYSTATE_COMPLETE
    DoEvents
Loop

' ----- I tried the below code as an alternative but it didn't work -----
'ie.document.forms("formsamplename").elements("usernumber").Value = ThisWorkbook.Sheets("sheet1").Range("B6")

Set htmldoc = ie.document
Set htmlinput = htmldoc.getElementById("usernumber")

htmlinput.Value = "excel" **'error occurs here**

' ----- I also tried the below code, but it didn't work -----
'htmldoc.forms("formsamplename").elements("usernumber").Value = "test"

Set ie = Nothing
Set htmldoc = Nothing
Set htmlinput = Nothing

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