Захват WebBrowser GetElementsByTagName в этой области тега

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

Вопрос

Я пытался выяснить, как это сделать в течение некоторого времени. Я хочу найти форму classname из «live_», которую я могу сделать отлично с приведенным ниже кодом, но я не уверен, как это сделать, чтобы получить текстовое значение внутри тега формы, не перебирая весь код и не получая текст любой другой формы значение на странице.

Я использую элемент управления webbrowser на моей winform.

Код, который я должен получить, это тег формы:

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

Вышеприведенный код в настоящее время петли, пока он не найдет больше тегов формы на этой странице. Если он находит тег формы, тогда он видит, содержит ли этот тег формы имя класса live_ в любой части его имени. Этот код работает очень хорошо и находит все теги формы этим классом. Тем не менее, некоторые теги формы все еще имеют этот класс, но не текстовое поле, которое я также хочу искать только в этом теге формы .

Html выглядит примерно так:

<form class="live_574bf67566_58vvifkfkyu5237 commentable expand_mode" id="0_f" 
 onsubmit="return window.Event &amp;&amp;" action="change.php" method="post"
 data-ft='{"ge":"]"}' rel="async" data-live='{"seq":"574bf67566_1857067654230"}'>

   <input name="charset_test" type="hidden" value="6,52g,6b88">
   <input name="fb_dtsg" type="hidden" value="AQB4SLmU" autocomplete="off">
   [LOT of code here....]
   <input class="hiddenInput" type="hidden" autocomplete="off" data-id="785fgj67-774">
   <div class="innerWrap" data-reactid=".1l.1:4.0.$right.0.0.0.0.1.0.1">
      <textarea name="add_comment_text" title="Write a comment..." class="textInput mentions" placeholder="Write a comment..." value="Write a comment..." data-id="57-986-gn-52">Write a comment...</textarea>
   </div>
   [some more code here]
</form>

Поэтому мой вопрос: как мне просматривать только эту текущую область тега формы и найти, имеет ли он это текстовое поле (.GetAttribute («title»). ToString.ToLower = «написать комментарий ...») ?

Я пробовал сделать следующее:

Dim theElementCollection2 As HtmlElementCollection = Nothing

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

      theElementCollection2 = curElement.Document.GetElementsByTagName("textarea")

      For Each curElement2 As HtmlElement In theElementCollection2
         Debug.Print(curElement2.GetAttribute("title").ToLower.ToString)
         If curElement2.GetAttribute("title").ToLower.ToString = "write a comment..." Then
            Debug.Print("Found! " & curElement2.GetAttribute("name"))
         End If
      Next
   End If
Next

Но это похоже только на все html-страницу ...

Спасибо за ваше время и помощь!

Популярные ответы

Похоже, вам нужно:

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


Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему