C#按名称获取元素

时间:2015-10-02 09:26:23

标签: c# document getelementbyid getelementsbyname

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代码:

<html>
    <input type="text" id="textfield1" value="TEXT1"><br>
    <input type="text" name="textfield2" value="TEXT2"><br>
    <input type="submit" value="Submit">
</html>

3 个答案:

答案 0 :(得分:11)

您可以使用HtmlElementCollection方法获取GetElementsByTagName。然后,HtmlElementCollectionGetElementsByName方法:

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

答案 1 :(得分:3)

您可以使用HtmlElementCollection.GetElementsByName获取元素的值

webBrowser1.Document.GetElementsByName("textfield2").SetAttribute("value", textBox1.Text);

修改

foreach (HtmlElement he in webBrowser1.Document.All.GetElementsByName("textfield2"))
{
    he.SetAttribute("value", textBox1.Text);
}

答案 2 :(得分:1)

您无法通过名称直接访问元素,但您可以通过首先查找输入标记并索引到结果以按名称查找标记来访问它们。

webBrowser1.Document.GetElementsByTagName("input")["textfield2"]

webBrowser1.Document
    .GetElementsByTagName("input")
    .GetElementsByName("textfield2")[0]