webdriver 获取alert 提示no alert is active

 

http://hi.baidu.com/janice515/item/bce536bb136e8441bb0e120f

摘上面:

 

一般正常情况下会报错,如 no alert is  active  目前未找到alert

如果没有出现alert

1、页面未加载完成,alert没加载出来

2、页面加载完,但获取不到alert

针对第一种情况:

解决的办法可能是:

a、加上页面加载时间

针对第二种情况:

解决的办法可能是:

a、代码写的是否正确

b、iframe是否已跳出

建议大家写一个公共方法,来进行判断alert是否存在;

目前webdriver已经可以不用js的方式来调取,可以使用本身封装好的方法;

如下所示

 

 public static Alert waitForAlert(WebDriver driver, int seconds)
     {
        Wait<<b style="color: black; background-color: rgb(255, 102, 255);">WebDriver> wait = new WebDriverWait(driver, seconds);
         return wait.until(new AlertAvailable());
     }

     private static class AlertAvailable implements ExpectedCondition<<b style="color: black; background-color: rgb(160, 255, 255);">Alert>
     {
         private Alert alert = null;
        @Override
         public Alert apply(WebDriver driver) {
            Alert result = null;
             if (null == alert)
             {
                alert = driver.switchTo().alert();
             }
             try {
                alert.getText();
                 result = alert;
             } catch (NullPointerException npe)
             {
                 logger.error(npe);
              }
                return result;
         } }

commonJava.waitForAlert(driver,10).accept(); 调用这个方法就可以了

当然我的问题也就解决了~

webdriver 获取alert 提示no alert is active,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。