2016-09-26 88 views
-1

我想用Selenium登錄網頁。下面是代碼:Selenium點擊登錄後,用戶名和密碼字段變爲空白

driver.Navigate().GoToUrl(baseURL); 
driver.FindElement(By.Id("MainContent_LoginCtrl_UserName")).Clear(); 
driver.FindElement(By.Id("MainContent_LoginCtrl_UserName")).SendKeys("name"); 
driver.FindElement(By.Id("MainContent_LoginCtrl_Password")).Clear();  
driver.FindElement(By.Id("MainContent_LoginCtrl_Password")).SendKeys("password");  

輸入用戶名和密碼後,我嘗試了四種方式登錄:

driver.FindElement(By.Id("MainContent_LoginCtrl_Password")).SendKeys(Keys.Enter); 
driver.FindElement(By.Id("MainContent_LoginCtrl_Password")).Submit(); 
driver.FindElement(By.Name("ctl00$MainContent$LoginCtrl$ctl05")).Click(); 
driver.FindElement(By.XPath("//input[@value='Log in']")).Click(); 

登錄後,頁面還停留在登錄頁面。用戶名和密碼字段變爲空白。

請提前告知並非常感謝您!

回答

0

我想這樣的事情和解決的問題:

while (driver.FindElements(By.Id("MainContent_LoginCtrl_UserName")).Count > 0 || driver.FindElements(By.Id("MainContent_LoginCtrl_Password")).Count > 0) { 
      driver.FindElement(By.Id("MainContent_LoginCtrl_UserName")).Clear(); 
      driver.FindElement(By.Id("MainContent_LoginCtrl_UserName")).SendKeys("username"); 
      driver.FindElement(By.Id("MainContent_LoginCtrl_Password")).Clear(); 
      driver.FindElement(By.Id("MainContent_LoginCtrl_Password")).SendKeys("password"); 
      driver.FindElement(By.Name("ctl00$MainContent$LoginCtrl$ctl05")).Click(); 
      Thread.Sleep(5000); 
     } 
+0

這不是真的很重要,如果這是一個孤立的測試環境,但你可能想從這個答案中刪除憑據。 :) – mrfreester

0

試試這個,可能是按鈕,需要時間來顯現:

driver.Navigate().GoToUrl(baseURL); 
driver.FindElement(By.Id("MainContent_LoginCtrl_UserName")).Clear();   
driver.FindElement(By.Id("MainContent_LoginCtrl_UserName")).SendKeys("name"); 
driver.FindElement(By.Id("MainContent_LoginCtrl_Password")).Clear();  
driver.FindElement(By.Id("MainContent_LoginCtrl_Password")).SendKeys("password");  
Thread.Sleep(10000); 
driver.FindElement(By.Id("MainContent_LoginCtrl_Password")).Click(); 

OR

driver.Navigate().GoToUrl(baseURL); 
driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(10)); 
driver.FindElement(By.Id("MainContent_LoginCtrl_UserName")).Clear(); 
driver.FindElement(By.Id("MainContent_LoginCtrl_UserName")).SendKeys("name"); 
driver.FindElement(By.Id("MainContent_LoginCtrl_Password")).Clear();  
driver.FindElement(By.Id("MainContent_LoginCtrl_Password")).SendKeys("password");  
driver.FindElement(By.Id("MainContent_LoginCtrl_Password")).Click(); 
+0

非常感謝您回答!我嘗試了兩個但仍然有這個問題。最後我解決了這個問題。我在下面發佈了我的答案。 –