如何在WPF中获取webbrowser控件的输入框的值?

时间:2013-04-05 13:42:21

标签: c# html wpf browser

我添加了Microsoft.mshtml作为我的项目的参考,并且到目前为止:

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

但第二行不起作用。它说

  

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

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

2 个答案:

答案 0 :(得分:5)

试试这个:

var document = (IHTMLDocument3) webbrowser.Document;
var value =
    document.getElementsByName("username")
            .OfType<IHTMLElement>()
            .Select(element => element.getAttribute("value"))
            .FirstOrDefault();

答案 1 :(得分:0)

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

Dim document = DirectCast(MainBrowser.Document, IHTMLDocument3) 
Dim formName = document.getElementsByName(AppSettings("myFormName")).OfType(Of IHTMLElement)().Select(Function(element) element.getAttribute("name")).FirstOrDefault()