selemiun 下拉菜单、复选框、弹框定位识别
一、下拉菜单识别
对下拉框的操作,主要是通过Select 类里面的方法来实现的,所以需要new 一个Select 对象(org.openqa.selenium.support.ui.Select)来进行操作
public void selectDemo() throws InterruptedException {
driver.get("http://tieba.baidu.com/f/search/adv?red_tag=v3168911135");
driver.manage().window().maximize();
Select sel =new Select(driver.findElement(By.name("sm")));
// 通过下拉框value值选择
sel.selectByValue("2");
Thread.sleep(2000);
// 通过下拉框索引选择第一项
sel.selectByIndex(0);
Thread.sleep(2000);
// 通过下拉框可见文本选择
sel.selectByVisibleText("按时间顺序");
主要的方法有:
boolean isMultiple() //判断下拉框是否多选模式
void selectByIndex(int index) //选中指定index的项,单选多选均有效,当index超出范围时,抛出NoSuchElementException异常
void selectByValue(String value) //选中所有Select标签中,value为指定值的所有项,单选多选均有效,当没有适合的项时,抛出NoSuchElementException异常
void selectByVisibleText(String text) //选中所有项的文字为指定值的项,与deselectByValue相反,但单选多选模式均有效,当没有适合的项时,抛出NoSuchElementException异常
void deselectAll() //取消所有选择项,仅对下拉框的多选模式有效,若下拉不支持多选模式,则会抛出异常 UnsupportedOperationException(不支持的操作)
void deselectByIndex(int index) //取消指定index的选择,index从零开始,仅对多选模式有效,否则抛出异常 UnsupportedOperationException(不支持的操作)
void deselectByValue(String value) //取消Select标签中,value为指定值的选择,仅对多选模式有效,否则抛出异常 UnsupportedOperationException(不支持的操作)
void deselectByVisibleText(String Text) //取消项的文字为指定值的项,例如指定值为Bar,项的html为 <option value="foo">Bar</option>,仅对多选模式有效,单选模式无效,但不会抛出异常
List<WebElement>getAllSelectedOptions() //获得所有选中项,单选多选模式均有效,但没有一个被选中时,返回空列表,不会抛出异常
WebElement getFirstSelectedOption() //获得第一个被选中的项,单选多选模式均有效,当多选模式下,没有一个被选中时,会抛出NoSuchElementException异常
List<WebElement>getOptions() //获得下拉框的所有项,单选多选模式均有效,当下拉框没有任何项时,返回空列表,不会抛出异常
获取下拉菜单所有的option,并判断默认选择项
public void mutilSelectDemo() {
driver.get("http://tieba.baidu.com/f/search/adv?red_tag=v3168911135");
driver.manage().window().maximize();
List<WebElement> lw=driver.findElement(By.name("sm")).findElements(By.tagName("option"));
System.out.println("总共有:"+lw.size()+" 个选项");
for (int i = 0; i < lw.size(); i++) {
if (null!=lw.get(i)&&"按时间倒序".equals(lw.get(i).getText())) {
System.out.println("默认选择的是"+lw.get(i).getText());
}
}
}
二、单选框、复选框--checkbox、radiobox操作
checkbox和radio,一般情况下这两种都是 input 标签,可以通过元素定位后,click()方法直接操作
driver.findElement(By.id("subMerType2")).click();
三、页面弹框--alert 操作
Alert弹框操作之前要先切换到Alert页面,则需要使用:org.openqa.selenium.Alert类
Alert alert = driver.switchTo().alert();
弹框的操作方法有:
- accept() // 弹框确认操作
- dismiss() // 弹框取消操作
- getText() // 获取弹框上的文本
driver.findElement(By.id("commit")).click();
Thread.sleep(3000);
Alert alert =driver.switchTo().alert();
System.out.println(alert.getText());
alert.accept();
alert.dismiss();
selemiun 下拉菜单、复选框、弹框定位识别的更多相关文章
- AngularJS进阶(五)Angular实现下拉菜单多选
Angular实现下拉菜单多选 写这篇文章时,引用文章地址如下: http://ngmodules.org/modules/angularjs-dropdown-multiselect http:// ...
- ObjectARX动态添加AutoCAD传统下拉菜单入门篇(一)
ObjectARX动态添加传统下拉菜单入门篇 图文by edata , 转载注明出处 http://www.cnblogs.com/edata AutoCAD 添加传统下拉菜单有很多种方式,比较典型 ...
- 【BIEE】BI Publisher下拉菜单设置
在使用BIEE的过程中,通常会有需要根据下拉菜单所选内容进行数据展示,如下图所示: 设置参数 进入数据模型编辑界面→参数 新增参数,P_DATADATE为示例参数 参数赋值 同时点击"值列表 ...
- JS实现带复选框的下拉菜单
这段时间在做后台的时候需要一个可以复选的下拉菜单,用到的是easyUI中的combo的Demo,先看看官方easyUI:http://www.jeasyui.com/documentation/ind ...
- DOM(十)使用DOM设置单选按钮、复选框、下拉菜单
1.设置单选按钮 单选按钮在表单中即<input type="radio" />它是一组供用户选择的对象,但每次只能选一个.每一个都有checked属性,当一项选择为t ...
- JQuery对单选框,复选框,下拉菜单的操作
JSP <%@ page language="java" import="java.util.*" pageEncoding="utf-8&qu ...
- jQuery 前端复选框 全选 反选 下拉菜单联动
jQuery 页面中复选框全选.反选.下拉联动(级联) <!DOCTYPE html> <html lang="en"> <head> < ...
- selenium webdriver从安装到使用(python语言),显示等待和隐性等待用法,切换窗口或者frame,弹框处理,下拉菜单处理,模拟鼠标键盘操作等
selenium的用法 selenium2.0主要包含selenium IDE 和selenium webDriver,IDE有点类似QTP和LoadRunner的录制功能,就是firefox浏览器的 ...
- IOS第二天-新浪微博 - 添加搜索框,弹出下拉菜单 ,代理的使用 ,HWTabBar.h(自定义TabBar)
********HWDiscoverViewController.m(发现) - (void)viewDidLoad { [super viewDidLoad]; // 创建搜索框对象 HWSearc ...
随机推荐
- 解决使用requests_html模块,html.render()下载chromium报错、速度慢问题
来源:https://www.cnblogs.com/xiaoaiyiwan/p/10776493.html 稍作修改 1.第一步,代码如下: from requests_html import HT ...
- Spring Boot 邮件发送
pom文件依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId> ...
- linux svn 批量添加
近期开始用svn来进行代码版本的维护管理,之前一直用git,两个感觉大同小异.用svn命令行来添加文件的话需要一个一个的选,很是蛋疼,于是就写了个shell脚本,批量添加文件,还在改进中... #!/ ...
- Mysql数据库主键,外键,索引概述
主键: 主键是数据表的唯一索引,比如学生表里有学号和姓名,姓名可能有重名的,但学号确是唯一的,你要从学生表中搜索一条纪录如查找一个人,就只能根据学号去查找,这才能找出唯一的一个,这就是主键;如:id ...
- 面试刷题31:分布式ID设计方案
面试中关于分布式的问题很多.(分布式事务,基本理论CAP,BASE,分布式锁)先来一个简单的. 简单说一下分布式ID的设计方案? 首先要明确在分布式环境下,分布式id的基本要求. 1, 全局唯一,在分 ...
- 基于华为云IoT Studio自助生成10万行代码的奥秘
华为IoT小助手们搬好板凳.备好笔记本.听了HDC.Cloud的几场华为云技术架构师的直播讲课,感觉获益匪浅却又似懂非懂,直后悔自己没有好好打下基础.为了避免再次出现这样的情况,小助手偷偷跑去找了华为 ...
- findbugs过滤R.java文件
在第一次使用findbugs时检查出100多个Bad pratice,仔细一看原来全是R文件里面的类名首字母没有大写导致的. 于是只有自己在findbugs设置界面中添加过滤条件来忽略掉R文件. 在F ...
- 在vue+elementUI项目中使用分页功能
HTML: <div class="mRttt"> <!-- 分页 --> <el-pagination ...
- Servlet 中文乱码问题解析及详细解决方法
使用 servlet 向客户端浏览器回送中文时,经常出现中文乱码的问题,这里给大家完完全全地搞明白: 一.基本常识 中文系统默认是 GBK 编码(GBK是对GB2312的补充,包含它) 需要处理编码问 ...
- MyBatis(一):第一个MyBatis程序
本文是按照狂神说的教学视频学习的笔记,强力推荐,教学深入浅出1便就懂!b站搜索狂神说即可 https://space.bilibili.com/95256449?spm_id_from=333.788 ...