自动填写Facebook登录表单

时间:2014-07-20 04:58:28

标签: c# winforms webbrowser-control facebook-c#-sdk

我是facebook SDK 6.0.10.0 for C#/ Windows Form

的新手

我很想找到一个解决方案来自动填充我的WebBrowser组件中登录页面的用户名和密码字段。 存储令牌不是一个解决方案,在我的情况下,我用5个不同的帐户测试客户端应用程序,我花了太多时间在这上面。

这是我的WebBrowser控件生成的HTMLDocument:http://pastebin.com/3Xy49vLG

如何自动完成工作而不会在测试中浪费太多时间?

1 个答案:

答案 0 :(得分:2)

我的回复不使用Facebook SDK,它只使用带有http://facebook.com网页的System.Windows.Forms.WebBrowser控件,其右上角有以下登录html控件:

enter image description here

    public void LoginToFaceBook(System.Windows.Forms.HtmlDocument doc, string email, string password)
    {
        //<input name="email" tabindex="1" class="inputtext" id="email" type="text" value="">
        doc.GetElementById("email").SetAttribute("value", email);
        //<input name="pass" tabindex="2" class="inputtext" id="pass" type="password">
        doc.GetElementById("pass").SetAttribute("value", password);
        //<input tabindex="4" id="u_0_n" type="submit" value="Log In">
        doc.GetElementById("u_0_n").InvokeMember("click");
    }

    /// <remarks>Should be logged-in to call this method</remarks>
    public void LogOutFromFaceBook(System.Windows.Forms.HtmlDocument doc)
    {
        // <input class="uiLinkButtonInput" type="submit" value="Log Out" />
        (from tag in doc.GetElementsByTagName("input").OfType<System.Windows.Forms.HtmlElement>()
         where tag.GetAttribute("className") == "uiLinkButtonInput" &&
                       tag.GetAttribute("type") == "submit" &&
                       tag.GetAttribute("value") == "Log Out"
                 select tag).First().InvokeMember("click");           
    }