Отправка ключей на веб-браузер vb.net?

У меня есть веб-браузер в моем приложении vb.net, и я хотел бы ввести текст в текстовое поле на сайте. При нажатии кнопки 1 он программно находит текстовое поле и вводит сообщение.

Public Class Form1

        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            SendKeys.Send("{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}")
            SendKeys.Send("The text I want to send to the control.")
        End Sub

End Class

Однако это не работает. Клавиши табуляции ставят курсор в нужное место, но когда текст вставляется в приложение, происходит сбой. Что пошло не так?


person user1196604    schedule 22.02.2012    source источник
comment
Используете ли вы приложение Windows Forms для навигации по веб-странице?   -  person StingyJack    schedule 22.02.2012
comment
@StingyJack Думаю, да, но ты меня смутил: / я не понимаю, что ты только что сказал!   -  person user1196604    schedule 22.02.2012
comment
Ваш код взят из приложения Windows Forms. Текстовое поле на сайте подразумевает, что целью вашего взаимодействия является веб-страница. Это правильно?   -  person StingyJack    schedule 23.02.2012


Ответы (2)


Поскольку вы используете элемент управления веб-браузера, вы можете получить доступ к элементу по имени. Например, это поместит текст в окно поиска Google, а затем нажмите кнопку поиска Google:

WebBrowser1.Document.All("q").SetAttribute("Value", "Text value.")
WebBrowser1.Document.All("btnK").InvokeMember("click")
person John Koerner    schedule 22.02.2012

Чтобы отправить ключи в WebBrowser, получите фокус WebBrowser, а затем SendKeys. Используйте следующий код:

 Me.WebBrowser1.Document.Body.Focus()
 System.Windows.Forms.SendKeys.Send("...") 'Whatever keys combination you want
person mzurita    schedule 22.11.2016