<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){};
}
答案 0 :(得分: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将在元素上将其定义为新属性。
答案 1 :(得分: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";
}
}
}