2014年3月13日 星期四

selenium - 網頁有Alert視窗執行seleniumTest時出現:driver.close org.openqa.selenium.UnhandledAlertException: Modal dialog present:...


參考:忘記了

因為今天PM告知我一大堆檢核錯誤,看者他的手寫TestCase時我心裡想,那乾脆來寫個seleniumTest好了,幫助他也幫助到我自己,我檢核的流程如下:


  1. 輸入錯誤的使用者密碼,帳號
  2. 跳出相對應的alert訊息(須檢查各種錯誤訊息是否正確)

TestCase如下:

@Test
WebDriver _driver = null;
public void test() throws Exception {
//...
 WebElement textMerchno = _driver.findElement(By.xpath("//input[@id='merchno']"));
 textMerchno.sendKeys(_merchno);
 WebElement textUserid = _driver.findElement(By.xpath("//input[@id='userid']"));
        textUserid.sendKeys(_userid);

 WebElement textPwd = _driver.findElement(By.xpath("//input[@id='userpwd']"));
 textPwd.sendKeys(_userpwd);

 WebElement btn = _driver
  .findElement(By.xpath("//input[@type='button' and @class='table_button']"));
 btn.click();

 Alert alert = _driver.switchTo().alert();
 String actual = alert.getText();
 assertEquals(expectedMsg, actual);
//...
}
但是就在執行時出現了Exception:
 driver.close org.openqa.selenium.UnhandledAlertException: Modal dialog present:... 解決方式如下:
 
 Alert alert = _driver.switchTo().alert();
 String actual = alert.getText();
 _driver.switchTo().alert().accept();
 assertEquals(expectedMsg, actual);

只要加上_driver.switchTo().alert().accept(); 就可以啦~

沒有留言:

張貼留言