В настоящее время я работаю над надстройкой Word. С ленты я запускаю веб-браузер. Если последнее уже открыто, я хотел бы изменить содержимое текстового поля и смоделировать нажатие кнопки. Проблема в том, что у меня есть NullPointerException, когда я пытаюсь получить доступ к текстовому полю. Мне показалось несколько похожих вопросов, но ни одно из решений не работает для меня. Вот мой код:
Private Sub btn_Click(sender As Object, e As RibbonControlEventArgs) Handles btn.Click
Dim frame As New frm_browser()
Dim search As String
Dim url As String
Dim WordApp As Microsoft.Office.Interop.Word.Application = Globals.ThisAddIn.Application
Dim doc As HtmlDocument = frame.browser.Document
Dim htmlSearchField As HtmlElement
Dim htmlSearchButton As HtmlElement
search = WordApp.Selection.Text
If IsFormOpen(browser.GetType()) = False Then
frame.Show()
url = "http://example.com?search=" + search
frame.browser.Navigate(url)
Else
'Trigger the error and the htmlElement returns null
htmlSearchField = doc.GetElementById("tb_id")
htmlSearchField.SetAttribute("value", search)
htmlSearchButton = doc.GetElementById("btn_id")
htmlSearchButton.InvokeMember("click")
End If
End Sub
А вот HTML-части, к которым я пытаюсь получить доступ:
<input id="tb_id" name="xxx" type="text" value="">
<div id="btn_id">Contains an image that simulate a search button</div>
Любой намек будет полезен. Спасибо за вашу помощь!