System .__ ComObject возвращается, когда я использую getAttribute - PullRequest
0 голосов
/ 14 марта 2012

Я использую этот код:

HtmlElement.GetAttribute("onClick")

Чтобы попытаться получить доступ к атрибуту onClick этого элемента, но все это возвращает System .__ ComObject. Я не знаю, почему это происходит, все другие вызовы GetAttribute возвращают фактическую строку.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 02 октября 2013

Сначала вы можете попытаться определить тип элемента управления;затем приведите ваш объект к этому типу.Доступ к свойствам элемента возможен с помощью этого метода.

Например, если ваш объект "div" содержит метод "onclick", вы должны преобразовать свой com-объект в mshtml.HTMLDivElement (необходимо добавить сборку "mshtml.dll "в ваш проект для использования класса mshtml);тогда вы можете искать атрибут "onclick" в свойстве outerHTML.

</p> <pre><code> 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]; }

0 голосов
/ 16 марта 2012

Пример кода

Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    WebBrowser1.Navigate("/4423678/system-comobject-vozvraschaetsya-kogda-ya-ispolzuy-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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...