<input class="input" maxlength="200">
这是HTML中的代码,它使一个文本框。 我试图在文本框中input东西(使用webBrowser),我可以通过标签名称获取该元素,我只是不知道如何input文本,因为它没有像“value”或“text “或者其他任何东西……这就是全部。 这不是我的服务器,所以我不能改变任何东西。
完整代码:
<div><label>Enter input: <input class="input" maxlength="200"></label></div>
删除
<input class="input" maxlength="200">
删除页面中的文本框…
我怎样才能input文本到该框?
我的代码:
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){}; }
假设你有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将在元素上将其定义为新属性。
而不是使用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"; } } }