如何在桌面应用程序中使用C#将文本设置为WebBrowser控件中的输入

时间:2018-07-12 15:12:21

标签: c# .net winforms webbrowser-control

我正在使用C#在VS中使用桌面应用程序,该应用程序包含一个用于加载两列文件的按钮和一个用于加载网页的区域。因此,目的是我要放在第一列在特定输入中,第二列输入到网页的其他输入中,然后单击网页中的按钮。

任何想法

先谢谢了。

2 个答案:

答案 0 :(得分:0)

我找到了设置值的解决方案:

HtmlElement button = webBrowser1.Document.GetElementById("btnC");
button.InvokeMember("click");

HtmlElement txt = webBrowser1.Document.GetElementById("txt1");
txt.SetAttribute("value","this is just an example");

答案 1 :(得分:0)

使用此示例源代码。在必要时添加错误处理。

为了使用IHTML *接口,请将对Microsoft HTML对象库的引用添加到项目中。

private void button1_Click(object sender, EventArgs e)
{

    string documentSource = @"
        <html>
        <body>
        <form action=""https://www.google.com/search"">
            <input name=""q"" id=""searchInput""/>
            <input type=""submit"" id=""searchButton""/> 
        </form>
        </body>
        </html>
    ";

    // navigate to document
    webBrowser1.Navigate("about:" + documentSource);

    // Wait until the document is fully loaded
    // Instead of using this loop, use "DocumentCompleted" event of the Webbrowser in
    // production code
    while (webBrowser1.ReadyState < WebBrowserReadyState.Complete)
    {
        Application.DoEvents();
    }

    // Get IHTMLDocument reference
    IHTMLDocument2 document = webBrowser1.Document.DomDocument as IHTMLDocument2;

    // Get searchInput and set value
    var searchInput = document.all.item("searchInput") as IHTMLInputElement;
    searchInput.value = "Hello";

    // Get searchButton and call click
    var searchButton = document.all.item("searchButton") as IHTMLElement;
    searchButton.click();
}