Selenium专题—弹出框处理

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

+ 猜你喜欢...

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

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

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值