3

我添加了 Microsoft.mshtml 作为对我的项目的引用,并走到了这一步:

        mshtml.IHTMLDocument2 document = (mshtml.IHTMLDocument2)webbrowser.Document;
        string username = document.all["username"].GetAttribute("value");

但第二行不起作用。它说

“错误 CS0021:无法将带有 [] 的索引应用于‘mshtml.IHTMLElementCollection’类型的表达式”

当悬停在“全部”上时。我如何访问所有元素?

4

2 回答 2

5

试试这个:

var document = (IHTMLDocument3) webbrowser.Document;
var value =
    document.getElementsByName("username")
            .OfType<IHTMLElement>()
            .Select(element => element.getAttribute("value"))
            .FirstOrDefault();
于 2013-04-05T14:01:09.783 回答
0

经过几个小时的努力,这个解决方案对我有用。

Dim document = DirectCast(MainBrowser.Document, IHTMLDocument3) 
Dim formName = document.getElementsByName(AppSettings("myFormName")).OfType(Of IHTMLElement)().Select(Function(element) element.getAttribute("name")).FirstOrDefault()
于 2016-12-15T07:17:43.827 回答