2012-11-01 13 views
1

我创建了一个c#windows应用程序,它提供了用户标识和密码的文本框,点击提交按钮后,它会自动使用webbrowser组件登录到eBay的账户到www.ebay.com。如果输入的用户名和密码正确,登录似乎很容易。 现在我想与你的帮助来完成的是:使用C#Windows应用程序。如何识别使用Visual Studio的WebBrowser登录到网站是否成功?

每次用户输入的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#!

回答

0

由于webTest_DocumentCompleted将在页面完全加载时被调用,因此您应该能够检测到您是否从登录页面重定向到另一页面。例如,eBay UK的登录页面位于域名https://signin.ebay.co.uk/。一个成功的登录将我转移到http://my.ebay.co.uk/

您可以在webTest_DocumentCompleted方法中检查此传输。如果确实发生了,那么你已经登录了。如果没有,你没有登录(并且可以显示一个消息框来提醒用户)。

+0

感谢兄弟,希望能听到更多的你我有更多的问题。哈哈!我目前正在制作一家公司自己的浏览器,它会自动登录他们的用户到他们的ebay,这样,普通员工就不会知道密码了,而且我还有很多问题需要面对,特别是使用网页浏览器标签,打开在新的选项卡,新的窗口和会话处理(如何同时登录两个不同的eBay帐户在我即将发布的网页浏览器=))。但是,谢谢老兄! –

+0

好的,是的,你似乎有一些工作为你切割,祝你好运! – Christoffer

相关问题