-1

TextBox私は自分のC#フォームからデータを入力しようとしていますが、フォームの送信ボタンをクリックすると、ウェブサイトの...ここに転送されるはずです

private void button1_Click(object sender, EventArgs e)
{
   webBrowser1.Document.All.GetElementsByName("email")[1].SetAttribute("Value", textBox2.Text);
   webBrowser1.Document.All.GetElementsByName("pass")[1].SetAttribute("Value", textBox3.Text);
   webBrowser1.Document.GetElementsByTagName("form")[1].InvokeMember("submit");
}

private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
}

private void button2_Click(object sender, EventArgs e)
{
}

private void Form1_Load(object sender, EventArgs e)
{
   webBrowser1.Navigate("gmail.com");//Your link
   webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser1_DocumentCompleted); 
}

私がやったことは、Webブラウザーでリンクを開き、属性を検索してデータを入力することですが、"Value of '1' is not valid for 'index'. 'index' should be between 0 and -1."インデックスをゼロに変更すると同じエラーが発生するというエラーが発生します。

4

2 に答える 2

0

GetElementsByName("email")[1]「email」という名前の要素が少なくとも 2 つあり、[1] は配列のインデックスを指定し、配列はインデックス 0 から始まるため、2 番目の要素を選択することを意味します。

あなたの場合、「email」という名前の要素は1つしかないようです(おそらく、その名前の要素が存在すると仮定すると、取得しようとしている残りの要素も)、最初のアイテムを取得する必要があります配列内、つまりGetElementsByName("email")[0]

于 2013-04-02T14:15:47.610 に答える