0

This old unresolved question seems to relate most to my issue WebBrowser control not responding to InvokeMember("click")

The main difference is where the conversation petered out, my webpage does respond to ContentPlaceHolder1_btnComtrsView.click() correctly, where in the original question it did not.

I am trying to pull up a lat/long result after clicking the "View" button after entering in a value for COMTRS (use "M11S19E20" for example): https://www.earthpoint.us/TownshipsCaliforniaSearchByDescription.aspx

I've got the 2 separate document completed event handlers working correctly and all of that. So is it possible to handle the event of the document updating after clicking view? My code does work if I just click once to load the page and click, and a second time to pull the data out.

WebBrowserTRS.ScriptErrorsSuppressed = True
AddHandler WebBrowserTRS.DocumentCompleted, AddressOf ClickViewButton
WebBrowserTRS.Navigate("https://www.earthpoint.us/TownshipsCaliforniaSearchByDescription.aspx")


    Private Sub ClickViewButton(sender As Object, e As WebBrowserDocumentCompletedEventArgs)
        If e.Url.ToString() = "about:blank" Then Return
        RemoveHandler WebBrowserTRS.DocumentCompleted, AddressOf ClickViewButton

        Dim trsDoc As HtmlDocument = WebBrowserTRS.Document
        Dim elem_Input_Submit As HtmlElement = trsDoc.GetElementById("ContentPlaceHolder1_btnComtrsView")

        trsDoc.GetElementById("ContentPlaceHolder1_Comtrs").InnerText = _comtrs

        AddHandler WebBrowserTRS.DocumentCompleted, AddressOf GetLatLong
        elem_Input_Submit.InvokeMember("click")
    End Sub

    Private Sub GetLatLong(sender As Object, e As WebBrowserDocumentCompletedEventArgs)
        RemoveHandler WebBrowserTRS.DocumentCompleted, AddressOf GetLatLong

        Dim trsDoc As HtmlDocument = WebBrowserTRS.Document

        Dim centroidFound As Boolean = False
        For Each el As HtmlElement In trsDoc.GetElementsByTagName("tr")

            Dim val As String
            For Each el1 As HtmlElement In el.GetElementsByTagName("TD")
                val = el1.InnerText
                If val IsNot Nothing AndAlso val.Contains("Centroid") Then
                    centroidFound = True
                    ' ...
                    WebBrowserTRS = New WebBrowser
                    Return
                End If
            Next
        Next
        If Not centroidFound Then
            MsgBox("Unable to parse the township and range.",
                       MsgBoxStyle.Information, "Error in location lookup")
        End If

        Cursor = Cursors.Default
        toolstripViewMap.Enabled = True
    End Sub
Brett
  • 3
  • 5

0 Answers0