2013-02-06 29 views
3

在selenium2(Webdriver)中如何驗證警報是否存在?並繼續做一些事情,如果它不存在的話!WebDriver - 如何驗證警報是否存在?

我這樣做:

driver.findElement(By.id("btn_may_or_maynot_showalert")).click(); 
WebDriverWait wait = new WebDriverWait(driver, 2); 
try{ 
    wait.until(ExpectedConditions.alertIsPresent()); 
    Alert alert = driver.switchTo().alert(); 
    alert.accept(); 
} 
catch (Exception e){ 
    System.out.println("No alert"); 
} 
driver.findElement(By.id("Cont_doing_something")).click(); 

這工作正常,但有一個更好的辦法?

回答

2

不,你按照圖書館期望的方式做事。然而,圖書館的原則之一是,你應該總是知道你的自動化代碼會期待什麼。這意味着您不應該遇到按鈕「可能或不可能」導致警報的實例;你應該已經知道按下按鈕是否會引起警報。如果它做的不是你期望的事情,那是一種特殊的情況,應該拋出異常。

+0

謝謝吉姆!我完全同意你的看法 !!! – user2048204

+0

如果您在網站上自動執行測試,如果對站點進行了更改以提醒用戶,那麼用戶單擊確定,並且下次用戶登錄時,如果不進行更改,則不會收到警報。你不想要一種方法來測試嗎? – Mike

+0

當然,但是由於您正在編寫測試,因此您應該先了解自測試用戶上次登錄以來是否進行過更改,以及是否預期會顯示警報。如果您不確定這一點,或者如果您的測試運行在可能會發生變化的環境中,而測試人員可能事先不知道這些變化,那麼您的整個測試策略可能會受到懷疑。 – JimEvans