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; }}
+ 猜你喜欢...
===== 关于 DiggerPlus =====
DiggerPlus是国内新锐测试人垂直内容博客,专注于挖掘测试工具,普及测试技术,专注于测试人能力提升,博客上线后就受到广大测试人的热烈追捧;此外,DiggerPlus深度整合评测资源,揭秘科技数据和真相,让读者更懂科技,更好地把玩科技。 我们始终保持"独立,客观,严谨,优秀"的优良作风,努力为读者带来源源不断的优质内容。想访问更多酷毙的测试人网站?赶紧来DiggerPlus测试人网址导航看看吧!
===== DiggerPlus Team =====
DiggerPlus Team是DiggerPlus官方发起的团队,这是一群热爱科技,热爱测试,喜欢深度挖掘的热血测试人,他们是评测师,测试专家。 我们欢迎优秀的测试人加入DiggerPlus Team。 加入DiggerPlus,可以成为我们的认证Dper,认证Dper拥有DiggerPlus独一无二的专栏并得到个人展示。
阅读全文
0 0
- Selenium专题—弹出框处理
- selenium弹出框、页面跳转处理
- Selenium webdriver处理alert、confirm弹出框
- selenium处理web弹出框窗口
- Selenium webdriver 处理alert、confirm弹出框
- Selenium实践-如何处理弹出窗口
- python selenium-webdriver 处理JS弹出对话框
- 网页处理实践(3)——python+selenium+firefox,不弹出窗口,静默模式运行
- 内容 Selenium专题—截屏功能
- Selenium—如何处理下拉框
- selenium中处理不带ID的弹出窗口
- Selenium FAQ:如何处理JavaScript弹出的alert、prompt窗口
- selenium中处理不带ID的弹出窗口
- selenium自动化学习之弹出框
- selenium处理复选框radio
- python+selenium初级(8)—提示框处理
- selenium+Python获取弹出框内容的提醒
- Selenium Webdriver中如何处理浏览器弹出多个窗口的问题
- easyui $.messager.alert失效问题
- sd卡在Linux下格式化等处理小代码编写。
- 希尔排序
- 第一篇
- 数据库连接
- Selenium专题—弹出框处理
- /usr/bin/ld: 找不到 -lippicv(ubuntu 14.04安装opencv-3.1.0)
- Spring Security自定义Login
- 8种NoSQL数据库对比
- 服务端配合web端上传视频
- Java多线程--Fork Join分而治之
- Mybatis传递多个参数的解决办法(三种)
- Linux系统编程——特殊进程之孤儿进程
- c++宏定义