1

我创建了一个c# windows 应用程序,它为用户 ID 和密码提供了文本框,单击提交按钮后,它将使用 webbrowser 组件自动将 eBay 帐户登录到 www.ebay.com。如果输入的用户名和密码正确,登录似乎很容易。现在我想在你的帮助下完成的是:

每次用户在 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 回答