使用getAttribute时返回System .__ ComObject

我正在运行此代码:

HtmlElement.GetAttribute("onClick") 

要尝试访问该元素的onClick属性,但所有这些都返回System .__ ComObject。 我不知道为什么会发生这种情况,所有其他GetAttribute调用都返回实际的字符串。

谢谢。

示例代码

 Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load WebBrowser1.Navigate("http://stackoverflow.com/questions/9707869/system-comobject-is-returned-when-i-use-getattribute") End Sub Private Sub WebBrowser1_DocumentCompleted(sender As Object, e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted Dim a As HtmlElement = WebBrowser1.Document.GetElementById("portalLink").FirstChild MsgBox(a.DomElement.attributes("onclick").value.ToString) End Sub 

首先,您可以尝试确定控件的类型; 然后将您的对象转换为此类型。 使用此方法可以访问元素的属性。

例如,如果您的对象是“div”包含“onclick”方法,则必须将com对象转换为mshtml.HTMLDivElement (必须将程序集“mshtml.dll”添加到项目中才能使用mshtml类); 那么你可以在outerHTML属性中查找“onclick”属性。

  if (doc.GetElementById("id-of-div").GetAttribute("onclick").Equals("System.__ComObject")) { mshtml.HTMLDivElement docCOM = (mshtml.HTMLDivElement)doc.GetElementById("id-of-div").DomElement; string onClickStr = docCOM.outerHTML.[some string or regex operations here]; }