Не отправлять пароль в IE Explorer - PullRequest
0 голосов
/ 21 января 2020

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

Во-первых, я использую InternetExplorerMedium для адресации IE Session -

Set IE = New InternetExplorerMedium
IE.Visible = True
IE.Navigate "http://mytargetwebserver.net/reports/views/myMrs/myReports.faces"

Затем я жду полной загрузки страницы -

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

Следующая часть (передача пароля в сеанс IE - там, где он нарушен. Сначала я заполнял поле пароля идентификатором -

IE.Document.getelementbyid(Password).Value = "ThEpAsSwOrD"

Этот метод работал отлично долгое время, пока что-то пошло не так (я думаю, что-то изменилось на сайте). Когда это оставило поле пароля пустым, я решил вместо этого получить элемент по имени -

IE.Document.getelementbyName("password") = "ThEpAsSwOrD"

Это оказалось неудачным а также.

Я попытался сделать SendKey для имитации набора текста на клавиатуре, но это тоже не сработало.

На данный момент у меня нет идей. Предложения?

Спасибо,

1 Ответ

1 голос
/ 21 января 2020

Нет метода с именем getElementByName (), он называется getElement s ByName () и генерирует коллекцию узлов. Каждый элемент имеет индекс, как и в других методах get с Elements в имени.

Попробуйте следующую строку:

IE.Document.getElementsByName("password")(0).Value = "ThEpAsSwOrD"

Недавно я также заметил, что все больше и больше полей ввода помечаются HTML событиями. Вы также должны проверить это с инспектором DOM.

...