2013-02-06 27 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