Webbrowser GetElementsByTagName esegue il ciclo all'interno dell'area di tag

dom getelementsbytagname html-agility-pack vb.net webbrowser-control

Domanda

Ho cercato di capire come fare per fare questo per un po 'di tempo. Sto cercando di trovare il nome di classe form di "live_" che posso fare bene con il codice qui sotto, ma non sono sicuro su come ottenere un valore di testo all'interno di tale tag senza scorrere l'intero codice e ottenere ogni altro testo valore sulla pagina.

Sto usando un controllo del webbrowser sul mio winform.

Il codice che ho per ottenere il tag form è questo:

Dim theElementCollection As HtmlElementCollection = Nothing

theElementCollection = wbNewsFeed.Document.GetElementsByTagName("form")

For Each curElement As HtmlElement In theElementCollection
   If curElement.GetAttribute("className").ToLower.Contains("live_") Then
     Dim theID As String = curElement.GetAttribute("data-live")
   End If
Next

Il codice sopra scorre attualmente fino a quando non trova più tag di forma all'interno di quella pagina. Se trova un tag form, guarda se quel tag form contiene un nome classe di live_ in qualsiasi parte del suo nome. Questo codice funziona bene e trova tutti i tag form di quella classe. Tuttavia, alcuni tag del modulo hanno ancora quella classe ma nessuna casella di testo che sto cercando anche all'interno di quel tag .

L'html è simile a questo:

Dim theElementCollection As HtmlElementCollection = Nothing

theElementCollection = wbNewsFeed.Document.GetElementsByTagName("form")

For Each curElement As HtmlElement In theElementCollection
   If curElement.GetAttribute("className").ToLower.Contains("live_") Then
     Dim theID As String = curElement.GetAttribute("data-live")
   End If
Next

Quindi la mia domanda è: come faccio a cercare solo attraverso l'area del tag del modulo corrente e trovando se ha quella casella di testo (.GetAttribute ("title"). ToString.ToLower = "scrivi un commento ...") ?

Ho provato a fare quanto segue:

Dim theElementCollection As HtmlElementCollection = Nothing

theElementCollection = wbNewsFeed.Document.GetElementsByTagName("form")

For Each curElement As HtmlElement In theElementCollection
   If curElement.GetAttribute("className").ToLower.Contains("live_") Then
     Dim theID As String = curElement.GetAttribute("data-live")
   End If
Next

Ma questo sembra solo scorrere l'intera pagina html ancora ...

Grazie per il tuo tempo e aiuto!

Risposta popolare

Sembra che tu abbia bisogno di:

curElement.Children.GetElementsByName("add_comment_text")(0)



Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché