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は名前です。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>
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]