2013-09-17 2 views
0

У меня есть то, на что я надеюсь, будет простым вопросом. У меня есть немного кода, где я загружаю веб-страницу и вводим число в поле в IE. Это выглядит следующим образом:VBA Отправка ключа ввода в элемент HTMLInput

Option Explicit 

Private Sub GettingCashAvail() 

Dim IE   As InternetExplorerMedium 
Dim HTMLDoc  As HTMLDocument 
Dim IEField  As HTMLInputElement 

Set IE = New InternetExplorerMedium 

IE.navigate "https://website.com/login.aspx" 

While IE.Busy 
    DoEvents 
Wend 

Do Until IE.statusText = "Done" 
    DoEvents 
Loop 

Set HTMLDoc = IE.document 

Set IEField = HTMLDoc.getElementById("ucGetAccountNumber_txtAccountNumber") 

IEField.Value = "#########" 

Теперь это поле поддерживает нажатие Enter для перехода на следующую страницу. Я мог затушить второй объект для кнопки отправки, а затем сделать что-то вроде IESubmit.Click, чтобы ввести информацию и перейти к новому экрану, но то, что я хотел бы сделать, это как-то отправить ключ возврата. Вот часть источника с веб-страницы, что я заинтересован в:

onkeypress="return clickButton(event,'ucGetAccountNumber_btnSubmit')" 

Как вы думаете, есть ли способ, чтобы просто послать клавишу ввода? Спасибо за идеи, если так, если нет, я могу просто получить, что кнопка отправки установлена ​​на второй входной объект.

+0

'call GetCashAvail?' – Elias

ответ

1

Вы можете, возможно, использовать:

IE.Visible = True 
Application.SendKeys "~" '## send the "Enter" keystroke 

Но в моих попытках использовать SendKeys метод, они не очень надежны, и большинство людей предлагают использовать различные методы.

Я думаю, что лично предпочтительнее создать другую переменную объекта и вызвать метод кнопки .Click, как вы указали.

+0

Нет кубиков. Я на самом деле попробовал еще одно небольшое изменение. Я также попробовал просто добавить Chr (10) в текстовое поле с предсказуемыми результатами - никаких результатов. – MattB

+0

Считаете ли вы, что есть способ достичь этого, используя метод «FireEvent»? – MattB

+0

Никогда не слышал об этом. Почему бы просто не перейти к простому маршруту, создать другую объектную переменную, чтобы отобразить кнопку, которую нужно нажать, а затем вызвать метод «.Click»? –

Смежные вопросы