使用Web浏览器控件获取div类的内容?

我有一个带有webBrowser1控件的表单,用于加载一个页面,该页面在其HTML部分中包含以下行:

  ... 
Hello World !

我需要获取div元素的innerText 。 我尝试了以下方法:

  string result = ""; foreach (HtmlElement el in webBrowser1.Document.GetElementsByTagName("div")) if (el.GetAttribute("class") == "cls") { result = el.InnerText; } 

但上面的代码似乎不起作用,并且根据解决方案1在另一个网站上的类似问题 ,它被声明

引起我注意的第一件事是:

没有定义div元素的名称,它定义了它的CSS样式类。 而是使用属性名称(或两者),例如:

如果只有class属性,我怎样才能得到div元素的innerText

任何帮助将受到高度赞赏。

您应该使用ClassName而不是class

  if (el.GetAttribute("className") == "cls") { … } 

有关详细信息,请参阅HtmlElement.GetAttribute(“class”)不运行 。

runat="server"ID属性添加到div ,如下所示:

 
Hello World !

添加runat="server"属性后,您可以像对象一样使用ID调用后面的代码:

 string result = hello_div.InnerText; // or InnerHtml 
  HtmlDocument doc = webBrowser1.Document; HtmlElementCollection divs = doc.GetElementsByTagName("div"); foreach (HtmlElement div in divs) { try { var info = div.DomElement; PropertyInfo[] pi = info.GetType().GetProperties(); string strClass = pi[0].GetValue(div.DomElement).ToString(); if (strClass == "cls") { //DoStuff } } catch { } }