我有一個與硒webdriver的Java代碼來測試網頁中的某些元素的存在。 測試通過每次它發現元素,但有時當我有一個500網頁的頂部的服務器錯誤消息,測試通過成功。 如何在我的測試中獲取此服務器錯誤消息。 這個錯誤信息的web元素是什麼?如何在網頁測試期間用selenium webdriver捕獲500服務器錯誤?
任何幫助 謝謝
我有一個與硒webdriver的Java代碼來測試網頁中的某些元素的存在。 測試通過每次它發現元素,但有時當我有一個500網頁的頂部的服務器錯誤消息,測試通過成功。 如何在我的測試中獲取此服務器錯誤消息。 這個錯誤信息的web元素是什麼?如何在網頁測試期間用selenium webdriver捕獲500服務器錯誤?
任何幫助 謝謝
我做之前,在迴歸測試套件類似這樣的檢查...
有一件事你可以做的,是有被非常頻繁執行的功能。事情是這樣的:
(你的標籤是模糊的,所以我會用使用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錯誤頁面。總會有一個。環視四周。
最好的方法是在測試後從eclipse導出結果測試文件,然後您可以在測試過程中找到所有發生的異常。但上面的解決方案也很好,但我們應該重現異常,然後找到元素。 – 2014-10-31 17:49:11
那是完全不同的邏輯。我是在假設(和你的問題的措辭)下,你無意中達到了500頁,並且想要使腳本失敗。那麼你說的邏輯是,你是專門測試500頁 – sircapsalot 2014-10-31 18:05:03
我想用Ant構建文件,在報告文件中沒有服務器錯誤500.every測試成功通過。我可以嘗試使用Maven – 2014-11-05 02:56:55
我這樣做是爲了趕上我的錯誤出現在網頁
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。
另一種可能是應用程序將錯誤轉儲到控制檯 - >然後Selenium會讓您訪問這些日誌。然後,您只需檢查是否有任何內容。 – Arran 2014-10-30 16:24:17
恕我直言 - 這不應該是你必須處理的事情(WebDriver)。在表示層傳播這樣的錯誤是一個壞主意(反模式) - 只是說。 – ekostadinov 2014-10-31 08:50:17