zoukankan      html  css  js  c++  java
  • 弹出框处理

    页面中遇到的弹出框,我一般把它分为两种方式处理:
    1、alert弹出框
    2、非alert弹框
    给出的代码中基本能处理所有页面的各种弹框。

    1、alert弹框

    //处理潜在的1个alert(javascript弹出框)
    public boolean dealPotentialAlert(WebDriver driver,boolean option) {
    //是否存在
    boolean flag = false;
    //异常捕获
    try {
        Alert alert = driver.switchTo().alert();
        //判断是否存在alert弹框
        if (null == alert){
            throw new NoAlertPresentException();
        }
        //异常捕获
        try {
            //确认or取消
            if (option) {
                //确认
                alert.accept();
                System.out.println("Accept the alert: " + alert.getText());
            } else {
                //取消
                alert.dismiss();
                System.out.println("Dismiss the alert: " + alert.getText());
            }
            flag = true;
        } catch (WebDriverException e) {
            if (e.getMessage().startsWith("Could not find")){
                System.out.println("There is no alert appear!");
            }else{
                throw e;
            }
        }
    } catch (NoAlertPresentException e) {
        System.out.println("There is no alert appear!");
    }
    return flag;
    }

    2、非alert弹框

    不管是JS自定义的弹出框还是windows弹出框,下面给出的方法都能准确定位

    //处理多个非alert弹窗
    public static boolean testNewWindows(WebDriver driver){
    //当前窗口句柄
    String currentHandle = driver.getWindowHandle();
    //得到所有窗口的句柄
    Set<String> handles = driver.getWindowHandles();
    //不包括当前窗口
    handles.remove(currentHandle);
    //存在窗口
    if (handles.size() > 0) {
        try{
        //定位窗口
            dr.switchTo().window(handles.iterator().next());
            return true;
        }catch(Exception e){
            System.out.println(e.getMessage());
            return false;
        }
    }
    System.out.println("Did not find window");
    return false;
    }
     
    //处理单个非alert弹窗
    public static boolean testNewWindow(WebDriver driver){
        try{
            //定位窗口
            driver.switchTo().window(driver.getWindowHandles().iterator().next());
            return true;
        }catch(Exception e){
            System.out.println(e.getMessage());
            return false;
        }
    } 
    View Code


    注:以上内容转自http://www.diggerplus.org/archives/920

  • 相关阅读:
    git系列3之简单命令(查看不同|文件提交|文件移除|重命名)
    git系列2之简单命令(乱码问题|修改文件提交|忽略文件)
    git系列1之安装初体验(windows)
    mongodb主从复制副本集(12)
    mongodb系统知识(11)
    mongodb系统知识(10)
    linux下h2集群创建,及java集成详细步骤
    windows下创建h2集群,及java集成详细步骤
    MySQL与Oracle 差异比较之一数据类型
    快速恢复update了的orcale数据表
  • 原文地址:https://www.cnblogs.com/dingziyin/p/5044177.html
Copyright © 2011-2022 走看看