4

C#のWebブラウザに自動的にログインするプログラムを作成しようとしました。これは私がこの目的のために現在使用しているコードです:

HtmlElementCollection pageTextElements = loginBrowser.Document.GetElementsByTagName("input");
        foreach (HtmlElement element in pageTextElements)
        {
            if (element.Name.Equals("username"))
                element.SetAttribute("value", this.UserName);
            if (element.Name.Equals("password"))
                element.SetAttribute("value", this.Password);
        }

ユーザー名は入力しますが、パスワードは入力しませんか?):グーグルで回りましたが、誰も返信しなかったトピックを始めた人はほんのわずかです。/:

うまくいけば、誰かが私を助けることができます。これは、パスワードフィールドのソースです。

<input type="password" value="" maxlength="50" size="25" name="password" class="bginput">
4

3 に答える 3

3

ドキュメントの更新が完了するまでお待ちください。 DocumentCompletedイベントメソッド。

何が起こっているかを確認したい場合は、上と下に があるフォームを作成しPanelますWebBrowser。3 TextBoxes、 a 、Buttonおよび別の を追加しTextBoxます。次のボックスのOnClickメソッドは、次のことを行います。

webBrowser1.Document.GetElementById(this.textBox1.Text).SetAttribute(this.textBox2.Text, this.textBox3.Text);
this.textBox4.Text = webBrowser1.Document.GetElementById(this.textBox1.Text).GetAttribute(this.textBox2.Text);

Passwordフォームのボックスに正しく入力されていることがわかります。

ウェイン

于 2011-02-20T12:00:26.240 に答える
1

このようにinnerTextプロパティを設定してみてください。私にとってはうまくいきます(vb.net):

Dim txtPassword As HtmlElement = browser.Document.GetElementById("ctl00_ContentPlaceHolder1_txtPassword")

txtPassword.InnerText = "123456"
于 2010-11-24T21:27:30.283 に答える