我是facebook SDK 6.0.10.0 for C#/ Windows Form
的新手我很想找到一个解决方案来自动填充我的WebBrowser组件中登录页面的用户名和密码字段。 存储令牌不是一个解决方案,在我的情况下,我用5个不同的帐户测试客户端应用程序,我花了太多时间在这上面。
这是我的WebBrowser控件生成的HTMLDocument:http://pastebin.com/3Xy49vLG
如何自动完成工作而不会在测试中浪费太多时间?
答案 0 :(得分:2)
我的回复不使用Facebook SDK,它只使用带有http://facebook.com网页的System.Windows.Forms.WebBrowser控件,其右上角有以下登录html控件:
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");
}