2012-07-13 33 views
0

我使用Assert類來檢查頁面上是否有文本,如果文本不存在,此命令將停止測試。我想使用驗證。有人能告訴我在哪裏可以找到有關此類方法的文檔嗎?我可以在哪裏找到有關驗證方法的文檔?

我的意思是WebDriver,junit。例如這樣的代碼

String text=("Terms"); 
List<WebElement> list = driver.findElements(By.xpath("//*[contains(text(),'" + text + "')]")); 
Assert.assertEquals("Text not found!", "Terms", list); 

如果沒有文字「期限」第JUnit測試將中斷測試,但我需要的只是把錯誤信息並繼續測試。

+0

究竟是什麼意思?在軟件測試中,我知道「驗證」一詞的幾個含義。你想要做什麼? – 2012-07-13 15:24:59

+0

根據對您問題的主要編輯更新了我的答案。希望這可以幫助。 – Will 2012-07-13 15:49:44

+0

'Assert.assertEquals(「文本未找到!」,「條款」,列表);'總是失敗,但這是另一個問題:) – 2012-07-13 16:13:59

回答

0

如果你想繼續你的測試用例執行即使一些一些結果你期待失敗,能看到的結果在完全執行結束。

你可以做這樣的事情 -

聲明一個變量來存儲所有的測試用例結果在執行過程失敗,然後在拆卸方法,你可以調用Assert.fail(字符串消息)

StringBuffer errors = new StringBuffer(); 

@Test 
public void testSomething(){ 
    if(!"data".equals(text)){ 
     addErrors(text +"not equal to data"); 
    } 

    // add any number of if statements to check anything else 
} 

@After() 
public void tearDown(){ 
    if(errors.length()!=0){   
    Assert.fail(errors.toString()); 
    } 
} 

public String addErrors(String message){ 
    errors = errors.append(message+"\n"); 
} 

現在,在testSomething()方法中,您可以檢查或測試網頁上的任意數量的WebElements,並且您只需使用一條簡單的if語句來檢查某些內容是否正確,如果不是,則調用addErrors()方法。希望這可以幫助你。

0

聽起來像你只需要抓住和處理由Assert (documented here)的各種方法拋出的AssertionError。事情是這樣的:

try { 
    Assert.assertEquals("Text not found!", "Terms", list); 
} catch (AssertionError e) { 
    System.err.println("Assertion failed: " + e.getMessage()); 
} 
+0

這裏「Selenium」是指Selenium IDE。使用Selenium RC或Selenium WebDriver時,通常使用JUnit或TestNG的斷言。 – 2012-07-13 15:35:14

+0

我更新了問題 – khris 2012-07-13 15:41:31

+1

由於您[不應該使用try-catch進行流量控制],所以使用簡單的if語句就足夠了(http://stackoverflow.com/questions/729379/why-not-use-exceptions-as -regular-流的控制)。但是,這是非常多的。 – 2012-07-13 16:16:04

相關問題