1

我犯了一個成功硒測試用例登錄頁面,該用戶輸入正確的用戶名和密碼,然後點擊登錄轉發到主頁,問題是,當我在測試類更改密碼,測試總是成功,我不知道爲什麼。如何在selenium測試用例中聲明登錄成功?

這裏的測試類:

public class LoginTest extends TestCase { 

    private WebDriver driver; 
    private String baseUrl; 
    private StringBuffer verificationErrors = new StringBuffer(); 

    @Before 
    public void setUp() throws Exception { 
     driver = new FirefoxDriver(); 
     baseUrl = "http://localhost:8080"; 
    } 

    @Test 
    public void testLoginClass() throws Exception { 
     driver.get(baseUrl + "/MyAPP/login"); 
     driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS); 

     driver.findElement(By.id("j_username")).clear(); 
     driver.findElement(By.id("j_username")).sendKeys("1"); 
     driver.findElement(By.id("j_password")).clear(); 
     driver.findElement(By.id("j_password")).sendKeys("wrong password"); 
     driver.findElement(By.id("loginBtn")).click(); 

    } 

    @After 
    public void tearDown() throws Exception { 
     driver.quit(); 
     String verificationErrorString = verificationErrors.toString(); 
     if (!"".equals(verificationErrorString)) { 
      fail(verificationErrorString); 
     } 
    } 

    @SuppressWarnings("unused") 
    private boolean isElementPresent(By by) { 
     try { 
      driver.findElement(by); 
      return true; 
     } catch (NoSuchElementException e) { 
      return false; 
     } 
    } 

} 

請告知如何處理測試案例的失敗,讓我們假設一段時間之後,數據庫中更改,有沒有這樣的用戶1,它是成功的現在。

回答

8

你不檢查,看看是否錯了密碼登錄的用戶。

你需要把一個測試用例登錄後進行檢查,如果出現一些特殊的文本。

例如,如果用戶成功登錄,歡迎屏幕將顯示「Hi UserName」。所以,你需要assert如果文本存在的硒腳本擊中的loginBtn

目前,所有你做的是發送「一些」文字作爲密碼,硒顯然不會知道,如果密碼不正確後,除非您驗證輸入錯誤密碼的結果。

編輯


在RUBY-

assert(@driver.find_element(:tag_name => "body").text.include?("Welcome UserName"),"The User successfully logs in") 
+0

代碼片斷請這樣斷言? – 2012-01-17 15:47:20

+0

我已經做了一個編輯,包括斷言,它在紅寶石 – Amey 2012-01-17 16:11:42

+0

那麼爲你工作嗎? – Amey 2012-01-17 19:49:54

0

的代碼段爲了驗證您的情況,您的應用程序應該顯示一條消息,如 「輸入的密碼無效。」

然後在登錄按鈕單擊後嘗試此操作。

try { 
    assertEquals(driver.findElement(By.id("Your Id for the message")).getText(), "Invalid UserID or Password Entered"); 

    //If the message is displayed 

    System.out.println("PASS"); 

} catch (Exception e) { 

    //If the message is not displayed 

    System.out.println("FAIL"); 

    verificationErrors.append(e.toString()); 

} 
相關問題