我一直在爲Web應用程序編寫Selenium測試,在內部服務器錯誤的情況下,應用程序中似乎有內部服務器錯誤的多個實例,應用程序顯示自定義錯誤頁面,並向用戶顯示錯誤ID與技術團隊一起追求事情,以防用戶遇到它。以編程方式檢查頁面狀態
這使得在Selenium執行期間調試測試失敗有點費力。 我正在考慮使用一些機制來保持輪詢頁面,在測試中執行的每一步都會發現是否有內部服務器錯誤的任何實例。這是我遇到Junit Rule並想到爲它編寫自定義註釋時,像一些事情 -
public class SelTestCase {
protected WebDriver driver;
@Before
public void startDriver() {
driver = new FirefoxDriver();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.get("http://www.google.com/");
}
@After
public void closeDriver() {
driver.quit();
}
}
public class GoogleSearchTest extends SelTestCase {
@Rule
PageChecker pageChecker = new PageChecker();
@Test
@CheckPage
public void testGoogleSearch() {
GoogleHomePage googleHomePage = PageFactory.initElements(driver,
GoogleHomePage.class);
googleHomePage.searchGoogle("Selenium HQ");
assert driver.getPageSource().contains("seleniumhq") : "Selenium headquarter search failed";
}
}
SelTestCase
類創建的webdriver的實例來執行測試,這裏是PageChecker
類 -
public class PageChecker extends SelTestCase {
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD})
public @interface CheckPage {
// page check should take place here (Though not sure if it is right place)
// like if(driver.getPageSource.contains("Internal Server Error") {throw Exception ("Err")}
}
}
這是我堅持,我該如何着手CheckPage annonations ?
這是接近我一直在尋找,但沒有奏效。我已經修改了這個問題,以包含執行'SelTestCase'類,它創建並銷燬驅動程序實例。我注意到時間控制達到'notValid'方法,驅動程序被銷燬,我得到空指針異常。儘管我假設在測試方法中的每個語句之後都會執行「verify」方法。 – Tarun 2012-03-28 10:16:31