繁体   English   中英

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 - 例如,使用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]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM