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> 地 区: ...
随机推荐
- 由override 和 overload 引发的学习感悟
工作已三年的我,竟然面试的时候去裸考了.想当然的认为有很多东西会在工作中不知不觉积累下来,现在想想,真是扯淡... 我的三年的工作经验是开发测试的工作,主要负责测试用例的自动化实现,稍深一些的是自动化 ...
- mysql 将行拼接成字符串的方法
见代码: ;//保证可以拼接足够长的字符串,没它 数据量大时会截断结果1 group by videoType 效果如下:
- MySQL 5.7临时表空间
MySQL 5.7起,开始采用独立的临时表空间(和独立的undo表空间不是一回事哟),命名ibtmp1文件,初始化12M,且默认无上限. 选项 innodb_temp_data_file_path 可 ...
- 使用RecyclerView实现聊天界面
原文地址:https://blog.csdn.net/wang_wy/article/details/79032698
- CVE-2017-16995 漏洞利用
Ubuntu本地提权(CVE-2017-16995)漏洞复现 在 ichunqiu 看到的环境(https://www.ichunqiu.com/course/61487),觉得有意思就记录一下. 实 ...
- linux 获取帮助的命令
Linux命令详解:[7]获得命令帮助 听语音 | 浏览:4601 | 更新:2015-01-30 20:21 | 标签:linux 1 2 3 4 5 分步阅读 在维护和使用Linux系统时,常常会 ...
- gentoo ebuild 私人portage
最近考虑搞个私人 portage, 用于一些软件的安装和管理. mkdir -p /usr/local/portage/app-misc/hello-world cd $_ cp /usr/porta ...
- leetcode每日刷题计划-简单篇day1
orzorz开始刷题 争取坚持每周平均下来简单题一天能做两道题吧 非常简单的题奇奇怪怪的错误orz越不做越菜 Num 7 整数反转 Reverse Integer 刚开始多给了一个变量来回折腾占地方, ...
- spring 之 BeanPostProcessor
粗略一看, 它有这么多实现: 可见, 它是多么基础 而重要的一个 接口啊! 它提供了两个方法: public interface BeanPostProcessor { Object postProc ...
- 创建列表明细应用1-使用fragment
笔记自<Android编程权威指南第二版> 第七章,创建一个列表明细应用 fragment是一种控制器对象,activity可委派它完成一些任务,这些任务通常就是管理用户界面.(管理用户界 ...