使用WebBrowser瀏覽 Facebook 登入後,要如何使用程式來讓使用者登出呢?
有朋友詢問「FB登出找不到此元素」,使用 WebBrowser 元件瀏覽 Facebook 登入後,
如果想要由程式去控制登出要如何處理呢?
因為直接轉址到登出的頁面(https://www.facebook.com/logout.php),它是不會登出的哦!
而且,一開始如果檢視原始碼,的確是會找不到登出的Link。如下,
如果按下帳號設定的那個Link,登出就會動態的出現在DOM之中,而且是包在 a 裡面,如下,
所以折衷作法就是模擬手動的方式,先按下帳號設定的那個Link,它的id是pageLoginAnchor(要用時,請再檢查一下哦!),
然後就等登出的DOM長出來後,再按下那個Link就可以了。程式如下(webBrowser1是放在Windows Form上面的webBrowser元件),
var pageLoginAnchor = webBrowser1.Document.GetElementById("pageLoginAnchor");
pageLoginAnchor.InvokeMember("click");
//執行到這裡,那個登出的Menu會出現
while(true){
Application.DoEvents();
foreach (HtmlElement anchor in webBrowser1.Document.GetElementsByTagName("a"))
{
if (anchor.InnerText != null && anchor.InnerText.Contains("登出"))
{
anchor.InvokeMember("click");
return;
}
}
}
參考資料
Hi,
亂馬客Blog已移到了 「亂馬客 : Re:從零開始的軟體開發生活」
請大家繼續支持 ^_^