1
<input class="input" maxlength="200">

这是 HTML 中的代码,它创建了一个文本框。我正在尝试在该文本框中输入内容(使用 webBrowser),我可以通过标签名称获取该元素,我只是不知道如何输入文本,因为它没有像“值”或“文本”这样的属性“或任何东西……就是这样。它也不是我的服务器,所以我无法更改任何内容。

完整代码:

<div><label>Enter input: <input class="input"
maxlength="200"></label></div>

删除

<input class="input" maxlength="200">

从页面中删除文本框...
如何在该框中输入文本?

我的代码:

foreach(HtmlElement z in webBrowser.Document.GetElementsByTagName("input")){
     try{
     z.SetAttribute("value", "My text"); //Can't set attribute because it has none
     } catch(Exception zz){};
}
4

2 回答 2

2

假设你有HtmlElement

htmlElement.SetAttribute("value", "My textbox value");

编辑:完整代码:

foreach(HtmlElement z in webBrowser.Document.GetElementsByTagName("input")) {
    if (z.GetAttribute("className") == "input") {
        z.SetAttribute("value", "My text");
    }
}

SetAttribute函数参考MSDN

如果attributeName 不是元素上已定义的属性,SetAttribute 将在元素上将其定义为新属性。

于 2013-07-22T20:23:06.237 回答
2

而不是使用 element.SetAttribute("value", "My text")使用element.InnerText="My text"

看我的例子

public Form1()
        {
            InitializeComponent();
            webBrowser1.DocumentCompleted += webBrowser1_DocumentCompleted;
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            webBrowser1.DocumentText = "<div><label>Enter input: <input class=\"input\"maxlength=\"200\"></label></div>";
        }

        void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            foreach (HtmlElement element in webBrowser1.Document.GetElementsByTagName("input"))
            {
               if(element.GetAttribute("className")=="input")
               {
                   element.InnerText="My text";
                }
            }
        }
于 2013-08-06T18:33:12.550 回答