【问题标题】:How to get text from div children without id in webbrowser C#如何在 webbrowser C# 中从没有 id 的 div 子项中获取文本
【发布时间】:2019-09-11 10:31:25
【问题描述】:

我必须在visual studio 2017 中用 C# 创建一个新项目,以便从 webbrowser 控件上的 html 元素和第一个带有动态 ID 的 div 中获取文本框控件中的文本(代码中的粗体字体)(代码中的粗体字体) ) 如果 id 包含字符串 ("183iT0R0T0R0x0_aria"),包括没有 ID 的子 div。请检查下面的 HTML。

我尝试了很多方法,但直到现在都没有找到解决方案。

我尝试的最后一个代码:

 var elements = webBrowser1.Document.GetElementsByTagName("div");
        foreach (HtmlElement element in webBrowser1.Document.All)
        {

            if (element.InnerHtml.Contains("183iT0R0T0R0x0_aria"))
            {

                textBox4.Text = element.Children[0].InnerText;
                break;
            }     

来自这个innerhtml:

<div id="Pad9a87f180614e169305e60f1b383ece_1_183iT0R0T0R0x0_aria" style="max-width:44.65mm;position:relative;word-wrap:break-word;word-break:break-word;white-space:pre-wrap;" class="A58b33aac09d744078b91e697d87c7cb2289 cannotGrowTextBoxInTablix cannotShrinkTextBoxInTablix">
  <div style="width:44.65mm;min-width: 44.65mm;">
    <div style="direction:rtl;width:100%;" class="r15"> This TEXT I WANT TO Get IT </div>
  </div>
</div>

【问题讨论】:

    标签: c# html .net


    【解决方案1】:

    我认为您使用 webBrowser1.Document.GetElementsByTagName("div") 走在正确的轨道上,但是您最终并没有使用您刚刚构建的 elements 列表,而是使用 webBrowser1.Document.All,它将查看 每个元素 在文档中,而不仅仅是 div 元素。

    另外,使用InnerHtml 会给你带来奇怪的结果,因为你会得到一个匹配任何具有div 和正确id inside 的元素,以及实际的@ 987654328@你想要的元素。所以你应该只对元素的id 属性进行比较。

    可能是这样的:

    var elements = webBrowser1.Document.GetElementsByTagName("div");
    foreach (HtmlElement element in elements)
    {
        if (element.Attributes["id"].Contains("183iT0R0T0R0x0_aria"))
        {
            textBox4.Text = element.Children[0].InnerText;
            break;
        }
    }
    

    我没有对此进行测试,所以我不确定element.Children[0].InnerText 是否有效。如果您知道里面总会有两个 div 元素,您可能需要使用 element.Children[0].Children[0].InnerText

    【讨论】:

      猜你喜欢
      • 2019-09-05
      • 2017-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多