2014-10-30 36 views
2

我有一個與硒webdriver的Java代碼來測試網頁中的某些元素的存在。 測試通過每次它發現元素,但有時當我有一個500網頁的頂部的服務器錯誤消息,測試通過成功。 如何在我的測試中獲取此服務器錯誤消息。 這個錯誤信息的web元素是什麼?如何在網頁測試期間用selenium webdriver捕獲500服務器錯誤?

任何幫助 謝謝

+0

另一種可能是應用程序將錯誤轉儲到控制檯 - >然後Selenium會讓您訪問這些日誌。然後,您只需檢查是否有任何內容。 – Arran 2014-10-30 16:24:17

+0

恕我直言 - 這不應該是你必須處理的事情(WebDriver)。在表示層傳播這樣的錯誤是一個壞主意(反模式) - 只是說。 – ekostadinov 2014-10-31 08:50:17

回答

1

我做之前,在迴歸測試套件類似這樣的檢查...

有一件事你可以做的,是有被非常頻繁執行的功能。事情是這樣的:

(你的標籤是模糊的,所以我會用使用JUnit僞的Java/webdriver的)

import static org.junit.Assert.fail; 

public void check500() { 
    if (isPresent(driver.findElement(By.cssSelector("div#500.error")))) 
     fail("500 page displayed! Failing test, and quitting."); 
} 

你會的,當然,與任何元素替換"div#500.error"該範圍內是獨一無二的500錯誤頁面。總會有一個。環視四周。

+0

最好的方法是在測試後從eclipse導出結果測試文件,然後您可以在測試過程中找到所有發生的異常。但上面的解決方案也很好,但我們應該重現異常,然後找到元素。 – 2014-10-31 17:49:11

+0

那是完全不同的邏輯。我是在假設(和你的問題的措辭)下,你無意中達到了500頁,並且想要使腳本失敗。那麼你說的邏輯是,你是專門測試500頁 – sircapsalot 2014-10-31 18:05:03

+0

我想用Ant構建文件,在報告文件中沒有服務器錯誤500.every測試成功通過。我可以嘗試使用Maven – 2014-11-05 02:56:55

0

我這樣做是爲了趕上我的錯誤出現在網頁

try { 

    List<WebElement> errors = m_driver 
      .findElements(By.className(ALERT)); 

    //Print all the error messages displayed 
    for (WebElement e : errors) 
     log("MESSAGE : " + e.getText()); 

} 

catch (Exception e) { 
} 

您可以通過任何你想要的人換掉了By.className。