6

所以我想出了如何通过 id 获取元素,但我不知道如何通过名称获取元素。

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

问题在于 HTMLtextfield1是一个 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>
4

3 回答 3

12

你可以得到一个HtmlElementCollection- 例如, usingGetElementsByTagName方法。然后,HtmlElementCollectionGetElementsByName方法:

webBrowser1.Document
    .GetElementsByTagName("input")
    .GetElementsByName("textfield2")[0]
        .SetAttribute("value", textBox1.Text);
于 2015-10-02T09:35:40.713 回答
4

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

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

编辑

foreach (HtmlElement he in webBrowser1.Document.All.GetElementsByName("textfield2"))
{
    he.SetAttribute("value", textBox1.Text);
}
于 2015-10-02T09:28:44.793 回答
1

您不能直接按名称访问元素,但您可以通过首先查找输入标签来访问它,然后对结果进行索引以按名称查找标签。

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

或者

webBrowser1.Document
    .GetElementsByTagName("input")
    .GetElementsByName("textfield2")[0]
于 2015-10-02T09:34:47.660 回答