VB.Net/Word Access HtmlElement с управлением веб-браузером - PullRequest
0 голосов
/ 27 августа 2018

В настоящее время я работаю над надстройкой 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>

Любой намек будет полезен. Спасибо за вашу помощь!

...