Selenium专题—弹出框处理

来源:互联网 发布:马克斯cms 资源站 编辑:程序博客网 时间:2024/05/21 13:56

页面中遇到的弹出框,我一般把它分为两种方式处理:
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 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;    }}

+ 猜你喜欢...

  • 使用WebDriver遇到的那些坑
  • Nightwatch.js – 基于Node.js的验收测试框架
  • Sahi-基于业务,成熟的Web自动化测试工具
  • Selenium专题—定位页面表格和单元格
  • Selenium专题—截屏功能
  • Selenium-XPath,CSS,DOM对照表
  • Selenium专题—JQuery选择器(一)
  • Selenium专题—日志记录
  • Selenium专题—报告生成
  • Selenium专题—数据驱动实现

===== 关于 DiggerPlus =====
DiggerPlus是国内新锐测试人垂直内容博客,专注于挖掘测试工具,普及测试技术,专注于测试人能力提升,博客上线后就受到广大测试人的热烈追捧;此外,DiggerPlus深度整合评测资源,揭秘科技数据和真相,让读者更懂科技,更好地把玩科技。 我们始终保持"独立,客观,严谨,优秀"的优良作风,努力为读者带来源源不断的优质内容。想访问更多酷毙的测试人网站?赶紧来DiggerPlus测试人网址导航看看吧!

===== DiggerPlus Team =====
DiggerPlus Team是DiggerPlus官方发起的团队,这是一群热爱科技,热爱测试,喜欢深度挖掘的热血测试人,他们是评测师,测试专家。 我们欢迎优秀的测试人加入DiggerPlus Team。 加入DiggerPlus,可以成为我们的认证Dper,认证Dper拥有DiggerPlus独一无二的专栏并得到个人展示。