zoukankan      html  css  js  c++  java
  • 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(); 调用这个方法就可以了

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

  • 相关阅读:
    用gethub下载ardupilot的最新源码
    Mavlink协议理解
    Mavlink消息包解析
    Mavlink 协议 理解
    极飞P20农业无人机多机协同作业飞行
    如何下载最新的固件到Pixhawk
    韦东山笔记之用busybox构建根文件系统
    Visual studio 打包程序时添加自定义的系统必备组件
    MFC 编译链接错误:unresolved external symbol
    在Visual studio 2017中使用EF6连接MySQL
  • 原文地址:https://www.cnblogs.com/sschen/p/3585940.html
Copyright © 2011-2022 走看看