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> 地 区: ...
随机推荐
- MySQL Point in Time Recovery the Right Way
In this blog, I’ll look at how to do MySQL point in time recovery (PITR) correctly. Sometimes we nee ...
- django操作数据库 ORM
一,数据库连接 创建类 a. 在models.py中先写类 from django.db import models # 表名是app01_userinfo class UserInfo(models ...
- Caused by: io.protostuff.ProtobufException: Protocol message contained an invalid tag (zero).
[ERROR] com.xxxx.redis.RedisClientTemplate.getOject(RedisClientTemplate.java:60):http-bio-8080-exec- ...
- FluentData -Micro ORM with a fluent API that makes it simple to query a database 【MYSQL】
官方地址:http://fluentdata.codeplex.com/documentation MYSQL: MySQL through the MySQL Connector .NET driv ...
- springboot对oracle的配置
spring.jpa.database=oracle spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver sprin ...
- 一切为了落地,为什么要把PP.io设计成三个阶段!
之前的一篇文章,我讲解了PP.io的三个阶段:“强中心”,“弱中心”,“去中心”.今天来解释下,我为什么要分三个阶段逐步实现PP.io去中心化存储网络: 简单地说,就是在区块链不可能三角理论中,我暂时 ...
- [UE4]Widget Switcher:控件切换器
一.Widget Switcher可以有很多子控件,但一次只会显示一个子控件.所有的子控件默认情况下都是充满整个Widget Switcher容器 二.Widget Switcher.Active W ...
- sync;sync;sync;reboot
Sync命令 在用reboot命令启动unix系统后,系统提示出错信息,部分应用程序不能正常工作.经仔细检查系统文件,并和初始的正确备份进行比较,发现某些文件确实被破坏了,翻来覆去找不到文件遭破坏的原 ...
- WM消息对应的Message消息中的Lparam和WParam
具体的消息表示: 1. WM_PAINT消息,LOWORD(lParam)是客户区的宽,HIWORD(lParam)是客户区的高 2. 滚动条WM_VSCROLL或WM_HSCROLL消息,LOWOR ...
- Problem B: 取石子
转换成一个数在(0,X + Y)的加减问题 考虑一种使用线段树处理的方法, 维护前缀最大值, 前缀最小值, 前缀和, 然后查询的时候先询问右区间是否会同时碰到上下界, 会的话左区间无用直接递归右区间, ...