【问题标题】:How to insert string into input field using C# in WPF Webbrowser如何在 WPF Webbrowser 中使用 C# 将字符串插入输入字段
【发布时间】:2016-11-12 02:45:39
【问题描述】:

我在 Stackoverflow 上找到了很多关于这个问题的信息,但看起来我仍然缺少一些东西。使用网络浏览器,我想在某个网页的输入字段中填写一个字符串。通过单击一个按钮,我希望在输入字段中输入一些文本。

这是我的代码:

using System.Windows.Forms;

和功能:

    private void button2_Click(object sender, RoutedEventArgs e)
    {
        HtmlDocument doc = (HtmlDocument)webBrowser1.Document;
        doc.GetElementsByTagName("input")["username"].SetAttribute("Value", "someString");
    }

第二个按钮处理 webBbrowser1.Navigate 方法。

然后我得到这个错误:

{“无法将“mshtml.HTMLDocumentClass”类型的 COM 对象转换为“System.Windows.Forms.HtmlDocument”类类型。表示 COM 组件的类型实例无法转换为不表示 COM 的类型组件;但是,只要底层 COM 组件支持接口的 IID 的 QueryInterface 调用,它们就可以转换为接口。"}

有什么想法吗?谢谢。

【问题讨论】:

    标签: c# wpf visual-studio webbrowser-control


    【解决方案1】:

    错误出现在这一行:

    HtmlDocument doc = (HtmlDocument)webBrowser1.Document;
    

    看看this。 WPF 中的 webBrowswer1.Document 返回 Microsoft.mshtml.HTMLDocuement 所以要么添加对 Microsoft.mshtml 的引用,然后:

    private void button2_Click(object sender, RoutedEventArgs e)
    {
        var doc = webBrowser1.Document as mshtml.HTMLDocument;
        var input = doc.getElementsByTagName("input");
        foreach (mshtml.IHTMLElement element in input)
        {
            if (element.getAttribute("name") == "username")
            {
                element.setAttribute("value", "someString");
                break;
            }
        }
    }
    

    private void button2_Click(object sender, RoutedEventArgs e)
    {
        dynamic doc = webBrowser1.Document;
        dynamic input = doc.getElementsByTagName("input");
        foreach (dynamic element in input)
        {
            if (element.getAttribute("name") == "username")
            {
                element.setAttribute("value", "someString");
                break;
            }
        }
    }
    

    更多信息:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多