c#按名称获取元素

本文关键字:获取 元素 | 更新日期: 2023-09-27 18:15:52

我已经知道如何通过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>

c#按名称获取元素

您可以获得HtmlElementCollection—例如,使用GetElementsByTagName方法。那么,HtmlElementCollectionGetElementsByName方法:

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]