2016-09-26 91 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

非常感谢您回答!我尝试了两个但仍然有这个问题。最后我解决了这个问题。我在下面发布了我的答案。 –