[.NET]使用WebBrowser瀏覽 Facebook 登入後,如何用程式來登出呢?

使用WebBrowser瀏覽 Facebook 登入後,要如何使用程式來讓使用者登出呢?

有朋友詢問「FB登出找不到此元素」,使用 WebBrowser 元件瀏覽 Facebook 登入後,

如果想要由程式去控制登出要如何處理呢?

因為直接轉址到登出的頁面(https://www.facebook.com/logout.php),它是不會登出的哦!

而且,一開始如果檢視原始碼,的確是會找不到登出的Link。如下,

image

 

如果按下帳號設定的那個Link,登出就會動態的出現在DOM之中,而且是包在 a 裡面,如下,

image

image

 

所以折衷作法就是模擬手動的方式,先按下帳號設定的那個Link,它的id是pageLoginAnchor(要用時,請再檢查一下哦!),

image

 

然後就等登出的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;
		}
	}
}

 

參考資料

FB登出找不到此元素

Hi, 

亂馬客Blog已移到了 「亂馬客​ : Re:從零開始的軟體開發生活

請大家繼續支持 ^_^