Java-Selenium,获取下拉框中的每个选项的值,并随机选择某个选项
今天逛51testing,看见有人问这个问题。现在以Select标签为例。
1、首先看页面中的下拉框,如图:

2、F12查看页面源代码,如下
<select class="form-control" id="grade_id" name="grade_id" required="">
<option value="">--无--</option>
<option value="1">普通会员</option>
<option value="5">VIP</option>
</select>
3、java代码调试下,获取下拉框中的每个选项的值
//1、根据元素定位找到select这个标签
Select level = new Select(driver.findElement(By.id("grade_id")));
//2、getOptions()方法获得的是一个WebElement的集合
List<WebElement> webElements = level.getOptions(); //3、新建一个List,用来存储每个选项的文本值
List<String> downs = new ArrayList<>(); //4、for-each循环每个选项
for (WebElement webElement : webElements) {
System.out.println("选项的值:"+webElement.getText()); //调试的时候打印看一下
//5、将每个选项的文本值添加到List集合
downs.add(webElement.getText());
}
4、随机选择某个选项的流程
- 首先得知道一共有多少个下拉选项,即num。因为我们上面已经把所有选项都放到了webElements集合中,现在只需要调用它的size()方法即可。注意,这个size是从1开始计数的。
- 获取0到num-1(包含0和num-1)的随机数random。(为什么不是1到num?请往下看)
- 让select选择ramdom。用selectByIndex(int index)方法。注意,这里的index是从0开始算。因此是0到num-1。
Select level = new Select(driver.findElement(By.id("grade_id")));
List<WebElement> webElements = level.getOptions();
List<String> downs = new ArrayList<>();
for (WebElement webElement : webElements) {
downs.add(webElement.getText());
}
//1、获取下拉选项的数量
int num = webElements.size();
//2、获得随机数
int random = Utils.rangeInt(0, num-1);
//3、根据随机数选择
level.selectByIndex(random);
备注:随机数是自己写的。需要的朋友可以自己网上找或者给我留言哦。其实如果不是select标签,而是<ul> <li></li>..... </ul>的html结构,思路是一样的。只是selenium没有单独封装这些方法而已。如果需要的话我也会写一写。
Java-Selenium,获取下拉框中的每个选项的值,并随机选择某个选项的更多相关文章
- 下拉框改变事件:获取下拉框中当前选择的文本 SelectionChanged事件
/// <summary> /// 下拉框改变事件:获取下拉框中当前选择的文本 /// </summary> /// <param name="sender&q ...
- jquery获取下拉框中的循环值
<select class="test" id="projectno" name="projectno"> <option ...
- 如何获取select下拉框中option选中的文本值
$(select的id或者class).change(function(){ $(this).find("option:selected").text() }) 源文:https: ...
- python+webdriver,选取Select下拉框中的值
在选择下拉框中的值时遇到了困难,用driver.find_element_by_id("").send_keys("")进行赋值不能成功获取下拉框中的值. ...
- 快速解决js开发下拉框中blur与click冲突
在开发中我们会经常遇到blur和click冲突的情况.下面叙述了开发中常遇到的"下拉框"的问题,并提供了两种解决方案. 一.blur和click事件简述 blur事件:当元素失去焦 ...
- JavaScript获取select下拉框中的第一个值
JavaScript获取select下拉框中的第一个值 1.说明 获取select下拉框中的第一个值 2.实现源码 <!DOCTYPE html PUBLIC "-//W3C//DTD ...
- Python+Selenium学习--下拉框处理
场景 下拉框也是web 页面上非常常见的功能,webdriver 对于一般的下拉框处理起来也相当简单,要想定位下拉框中的内容,首先需要定位到下拉框:这样的二次定位 下拉框一般有以下两种方式: 鼠标移上 ...
- 获取下拉框的文本值和value值
http://www.cnblogs.com/djgs/p/3691979.html?utm_source=tuicool&utm_medium=referral 现在有一个Id为AreaId ...
- Js获取下拉框当前选择项的文本和值
现在有一个Id为AreaId的下拉框,要获取它当前选择项的文本和值有以下方法: <span class="red">* </span> 地 区: ...
随机推荐
- 加密与解密md5 3des
/// <summary> /// MD5加密 /// </summary> /// <param name="s"></param> ...
- Python程序打包之PyInstaller
1.背景说明 [Python版本]Python 2.7.14 [系统平台]Windows 7 [优缺点描述]据说PyInstaller 比较慢,但是PyInstaller打包出来的exe简洁(就一个文 ...
- 用TreeSet和Comparator给list集合元素去重
今天在做导入功能时,看到一个感觉很好的去重算法,特分享给大家看看: 其原理利用了以下几点: 1.TreeSet里面不会有重复的元素,所以当把一个List放进TreeSet里面后,会自动去重 2.Tre ...
- Hadoop 管理工具HUE配置-Hive配置
1 前言 首先要配置好Hive,可以参见:http://www.cnblogs.com/liuchangchun/p/4761730.html 2 hive配置 找到beeswax标签,不叫hive, ...
- Ubuntu 14.10 下Hive配置
1 系统环境 Ubuntu 14.10 JDK-7 Hadoop 2.6.0 2 安装步骤 2.1 下载Hive 我第一次安装的时候,下载的是Hive-1.2.1,配置好之后,总是报错 [ERROR] ...
- Python-实列
"""题目:有四个数字:1.2.3.4,能组成多少个互不相同且无重复数字的三位数?各是多少? 程序分析:可填在百位.十位.个位的数字都是1.2.3.4.组成所有的排列后再 ...
- 机器学习简要笔记(五)——Logistic Regression(逻辑回归)
1.Logistic回归的本质 逻辑回归是假设数据服从伯努利分布,通过极大似然函数的方法,运用梯度上升/下降法来求解参数,从而实现数据的二分类. 1.1.逻辑回归的基本假设 ①伯努利分布:以抛硬币为例 ...
- 如何在ORACLE中查询某一用户下所有的空表
先分析表 select 'analyze table '||table_name||' compute statistics;' from user_tables; 把查询结果依次执行 把所有表分析一 ...
- 安装grid时找不到ASM共享磁盘
1.安装ORACLE数据库集群软件grid时找不到共享磁盘,如下图: 2.网上找过有各种说法,但此处小编的解决方案是:通过重新安装软件:oracleasmlib-2.0.4-1.el6.x86_64. ...
- Python函数学习
def func(x, y): print(x) print(y) func(x=1,2) #报错,关键参数一定不能放在位置参数前面 func(1,y=2) #可以正常运行 #参数组,适用于实参个数不 ...