2012-06-11 78 views
3

我一直在玩Selenium C#框架,並試圖做一個Facebook登錄,但沒有任何運氣。Facebook的Selenium for C登錄#

這就是我到目前爲止(基於這個職位:Testing a Facebook Connect application using Selenium?)。儘管如此,我還是無法使用它。

ISelenium sel = new DefaultSelenium("localhost", 4444, "*chrome", "http://facebook.com"); 
public void LoginWithEmailAndPassword(string email, string pass) 
{ 
    sel.Start(); 
    sel.Open("http://www.facebook.com"); 
    sel.ClickAt("//img[\\@alt='Facebook']", "User clicks on Facebook Login"); 
    sel.WaitForPopUp("", "3000"); 
    sel.SelectPopUp(""); 
    sel.Type("email", email); 
    sel.Type("pass", pass); 
    sel.KeyPress("pass", "\\13"); 
    sel.SelectWindow("null"); 
} 

因此,如果有人能爲我提供如何做到這一點,或者指導我在正確的方向上的一些示例代碼,我們將不勝感激。

解決

通過使用Firefox插件硒我的ID的,我需要得到它的工作職能的記錄功能。登錄按鈕似乎需要一個XPath定義,我也是從Selenium IDE獲得的。

ISelenium sel = new DefaultSelenium("localhost", 4444, "*chrome", "http://facebook.com"); 
public void LoginWithEmailAndPassword(string email, string pass) 
{ 
    sel.Start(); 
    sel.Open("/"); 
    sel.Type("id=email", email); 
    sel.Type("id=pass", pass); 
    sel.Click("//label[@id='loginbutton']/input"); 
} 
+0

你會得到什麼錯誤?這甚至編譯? –

+0

它建立。應該提到我正在通過FitNesse框架測試dll。它拋出一個TargetInvocationException Selenium.SeleniumException:錯誤:xpath無效[2]:// img [\ @ alt ='Facebook']。 – David

+0

當我從XPath中刪除反斜槓時,它不再拋出異常。 Facebook現在加載在瀏覽器窗口中。但它不會登錄,也不會顯示異常或其他錯誤。 – David

回答

1

嘗試使用的webdriver:

IWebDriver driver = new FireFoxDriver(); 
driver.GoToUrl("www.facebook.com"); 

var element = driver.FindElement(By.Id("email")); 
element.SendKeys(email); 
... 
element = driver.FindElement(By.Id("submit button id")); 
element.Click(); 

link可以幫助您開始。