C# 根据名称获取元素
C# get element by name
所以我知道如何通过id获取元素,但我不知道如何通过名称获取元素。
private void SendData()
{
webBrowser1.Document.GetElementById("textfield1")
.SetAttribute("value", textBox1.Text);
webBrowser1.Document.GetElementById("textfield2")
.SetAttribute("value", textBox1.Text);
}
问题在HTML textfield1
是一个id 但textfield2
是一个名字。所以我想弄清楚如何获得 textfield2
:
<html>
<input type="text" id="textfield1" value="TEXT1"><br>
<input type="text" name="textfield2" value="TEXT2"><br>
<input type="submit" value="Submit">
</html>
可以使用HtmlElementCollection.GetElementsByName取元素的值
webBrowser1.Document.GetElementsByName("textfield2").SetAttribute("value", textBox1.Text);
编辑
foreach (HtmlElement he in webBrowser1.Document.All.GetElementsByName("textfield2"))
{
he.SetAttribute("value", textBox1.Text);
}
您不能通过名称直接访问元素,但您可以通过首先找到输入标签,然后索引到结果中以通过名称查找标签来访问它。
webBrowser1.Document.GetElementsByTagName("input")["textfield2"]
或
webBrowser1.Document
.GetElementsByTagName("input")
.GetElementsByName("textfield2")[0]
你可以获得一个HtmlElementCollection
——例如,使用GetElementsByTagName
方法。然后,HtmlElementCollection
有 GetElementsByName
方法:
webBrowser1.Document
.GetElementsByTagName("input")
.GetElementsByName("textfield2")[0]
.SetAttribute("value", textBox1.Text);
所以我知道如何通过id获取元素,但我不知道如何通过名称获取元素。
private void SendData()
{
webBrowser1.Document.GetElementById("textfield1")
.SetAttribute("value", textBox1.Text);
webBrowser1.Document.GetElementById("textfield2")
.SetAttribute("value", textBox1.Text);
}
问题在HTML textfield1
是一个id 但textfield2
是一个名字。所以我想弄清楚如何获得 textfield2
:
<html>
<input type="text" id="textfield1" value="TEXT1"><br>
<input type="text" name="textfield2" value="TEXT2"><br>
<input type="submit" value="Submit">
</html>
可以使用HtmlElementCollection.GetElementsByName取元素的值
webBrowser1.Document.GetElementsByName("textfield2").SetAttribute("value", textBox1.Text);
编辑
foreach (HtmlElement he in webBrowser1.Document.All.GetElementsByName("textfield2"))
{
he.SetAttribute("value", textBox1.Text);
}
您不能通过名称直接访问元素,但您可以通过首先找到输入标签,然后索引到结果中以通过名称查找标签来访问它。
webBrowser1.Document.GetElementsByTagName("input")["textfield2"]
或
webBrowser1.Document
.GetElementsByTagName("input")
.GetElementsByName("textfield2")[0]
你可以获得一个HtmlElementCollection
——例如,使用GetElementsByTagName
方法。然后,HtmlElementCollection
有 GetElementsByName
方法:
webBrowser1.Document
.GetElementsByTagName("input")
.GetElementsByName("textfield2")[0]
.SetAttribute("value", textBox1.Text);