1

ユーザー ID とパスワードのテキスト ボックスを提供するc# Windows アプリケーションを作成しました。送信ボタンをクリックすると、webbrowser コンポーネントを使用して www.ebay.com に eBay アカウントが自動的にログインします。入力したユーザー名とパスワードが正しければ、ログインは簡単そうです。そして今、あなたの親切な助けで私が達成したいことは:

ユーザーが Windows アプリケーションで間違ったユーザー名またはパスワードを入力するたびに、ユーザー名とパスワードが正しくないことがメッセージ ボックスに通知されます。そして、ウェブサイトへのログインに失敗したこと。

WebBrowser のイベント DocumentComplete のコードは次のとおりです。

 //webTest is the name of my web browser
    private void webTest_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
    {
        //boolean login variable checks if the button login was clicked.
        if (login == true)
        {
            //checks if the url is on the login page of eBay.
            if (webTest.Url.AbsoluteUri == loginPage)
            {
                    HtmlDocument doc = webTest.Document;
                    HtmlElement username = doc.GetElementById("userid");
                    HtmlElement password = doc.GetElementById("pass");
                    HtmlElement submit = doc.GetElementById("but_sgnBt");
                    username.SetAttribute("value", txtUser.Text);
                    password.SetAttribute("value", txtPassword.Text);
                    submit.InvokeMember("click");
                    login = false;
            }
            //else the webbrowser webtest will navigate to the login page,
            else
                webTest.Navigate(loginPage);
        }
    }

返信ありがとうございます。神が c# を祝福しますように!

4

1 に答える 1

0

ページが完全に読み込まれるたびに呼び出されるためwebTest_DocumentCompleted、ログイン ページから別のページにリダイレクトされたかどうかを検出できるはずです。たとえば、eBay UK のログイン ページはドメインhttps://signin.ebay.co.uk/にあります。ログインに成功すると、代わりにhttp://my.ebay.co.uk/に転送されます。

webTest_DocumentCompletedメソッドでこの転送を確認できます。そうでない場合は、ログインしていません (メッセージ ボックスを表示してユーザーに警告することができます)。

于 2012-11-01T09:14:43.813 に答える