C#按名称获取元素

Soo ive想出如何通过id获取元素,但我不知道我怎么能按名称获取元素这是我的代码:

private void SendData() { webBrowser1.Document.GetElementById("textfield1").SetAttribute("value", textBox1.Text); webBrowser1.Document.GetElementById("textfield2").SetAttribute("value", textBox1.Text); } 

问题是在我的HTML代码中只有textfield1是一个id但textfield2是名字soo我想弄清楚如何获取textfield2

这是我的HTML代码:

  

您可以获取HtmlElementCollection – 例如,使用GetElementsByTagName方法。 然后, HtmlElementCollection具有GetElementsByName方法:

 webBrowser1.Document .GetElementsByTagName("input") .GetElementsByName("textfield2")[0] .SetAttribute("value", textBox1.Text); 

您可以使用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]