从WebBrowser VB.NET获取带有令牌的元素的完整ID

问题描述 投票:0回答:1

如何从结尾带有令牌或数字ID的元素中获取完整ID,诸如此类,但VB.NET似乎无法以相同方式处理querySelector。

Javascript getElementById base on partial string

例如

javascript vb.net getelementbyid queryselector
1个回答
0
投票

为您提供的解决方案是:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        Dim wb1 As WebBrowser = New WebBrowser
        Dim resultElements As List(Of HtmlElement) = New List(Of HtmlElement)

        Dim processElement As Action(Of HtmlElement) = Sub(element As HtmlElement)

                                                           Dim elementID As String = element.GetAttribute("id")


                                                           If Len(elementID) > 0 Then
                                                               Console.WriteLine(elementID)
                                                           End If

                                                           'You can change this with your conditions
                                                           If elementID IsNot Nothing AndAlso
                                                           elementID.EndsWith("_01") AndAlso
                                                           resultElements.IndexOf(element) = -1 Then

                                                               resultElements.Add(element)

                                                           End If

                                                           'Or put here other conditions
                                                           'If elementName IsNot Nothing AndAlso elementName.StartsWith("01_ABCD") AndAlso resultElements.IndexOf(element) = -1 Then resultElements.Add(element)


                                                           If element.Children IsNot Nothing AndAlso element.Children.Count > 0 Then

                                                               For Each children In element.Children
                                                                   processElement(children)
                                                               Next

                                                           End If


                                                       End Sub


        AddHandler wb1.DocumentCompleted, Sub(senderWb As Object, eWb As WebBrowserDocumentCompletedEventArgs)

                                              Dim allElements = wb1.Document.All

                                              If allElements IsNot Nothing And allElements.Count > 0 Then
                                                  For Each element As HtmlElement In allElements
                                                      processElement(element)
                                                  Next
                                              End If

                                              ' Here You have all your elements with custom ID condition 
                                              If resultElements.Count > 0 Then

                                                  For Each okElement As HtmlElement In resultElements
                                                      Console.WriteLine(okElement.GetAttribute("id"))
                                                  Next

                                              End If

                                          End Sub

        wb1.Navigate("http://stackoverflow.com")

    End Sub

通知我:)

© www.soinside.com 2019 - 2024. All rights reserved.