今天逛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、随机选择某个选项的流程

  1. 首先得知道一共有多少个下拉选项,即num。因为我们上面已经把所有选项都放到了webElements集合中,现在只需要调用它的size()方法即可。注意,这个size是从1开始计数的。
  2. 获取0到num-1(包含0和num-1)的随机数random。(为什么不是1到num?请往下看)
  3. 让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,获取下拉框中的每个选项的值,并随机选择某个选项的更多相关文章

  1. 下拉框改变事件:获取下拉框中当前选择的文本 SelectionChanged事件

    /// <summary> /// 下拉框改变事件:获取下拉框中当前选择的文本 /// </summary> /// <param name="sender&q ...

  2. jquery获取下拉框中的循环值

    <select class="test" id="projectno" name="projectno"> <option ...

  3. 如何获取select下拉框中option选中的文本值

    $(select的id或者class).change(function(){ $(this).find("option:selected").text() }) 源文:https: ...

  4. python+webdriver,选取Select下拉框中的值

    在选择下拉框中的值时遇到了困难,用driver.find_element_by_id("").send_keys("")进行赋值不能成功获取下拉框中的值.   ...

  5. 快速解决js开发下拉框中blur与click冲突

    在开发中我们会经常遇到blur和click冲突的情况.下面叙述了开发中常遇到的"下拉框"的问题,并提供了两种解决方案. 一.blur和click事件简述 blur事件:当元素失去焦 ...

  6. JavaScript获取select下拉框中的第一个值

    JavaScript获取select下拉框中的第一个值 1.说明 获取select下拉框中的第一个值 2.实现源码 <!DOCTYPE html PUBLIC "-//W3C//DTD ...

  7. Python+Selenium学习--下拉框处理

    场景 下拉框也是web 页面上非常常见的功能,webdriver 对于一般的下拉框处理起来也相当简单,要想定位下拉框中的内容,首先需要定位到下拉框:这样的二次定位 下拉框一般有以下两种方式: 鼠标移上 ...

  8. 获取下拉框的文本值和value值

    http://www.cnblogs.com/djgs/p/3691979.html?utm_source=tuicool&utm_medium=referral 现在有一个Id为AreaId ...

  9. Js获取下拉框当前选择项的文本和值

    现在有一个Id为AreaId的下拉框,要获取它当前选择项的文本和值有以下方法: <span class="red">* </span> 地       区: ...

随机推荐

  1. spi、iic、can高速传输速度与选择

    uart: 无限制,常用9600.115200bps等保证双方通信速度相同. iic: 通讯速率400Kbps can: 一般为1Mbps SPI: 通信速率 fosc/4其传输速度可达几Mb/s 缺 ...

  2. SpringCloud和Springboot

    SpringBoot+SpringCloud+SpringMVC+SpringData 我们把这种架构也称之为spring全家桶 什么是SpringCloudSpring Cloud是一系列框架的有序 ...

  3. springJdbc(jdbcTemplate)事物拦截失效问题解决

    先贴上web.xml和spring-jdbc.xml代码: web.xml代码: <context-param> <param-name>contextConfigLocati ...

  4. 解决配置Windows Update失败,还原更改问题

    问题描述 由于配置Windows Update失败,还原更改状态下无法正常关机.只能长按电源键关机后进入WinPE环境. 解决步骤 进入WinPE环境->选择Dism++->选择版本-&g ...

  5. 网络之OSI七层协议模型、TCP/IP四层模型

    13.OSI七层模型各层分别有哪些协议及它们的功能 在互联网中实际使用的是TCP/IP参考模型.实际存在的协议主要包括在:物理层.数据链路层.网络层.传输层和应用层.各协议也分别对应这5个层次而已. ...

  6. .net 调用 Matlab生成dll出现的问题(The type initializer for 'MathWorks​.MATLAB.NE​T.Utility.​MWMCR' threw an exception.)

    https://cn.mathworks.com/matlabcentral/answers/278399-i-get-an-error-saying-the-type-initializer-for ...

  7. swift便利构造函数

    class Person: NSObject { var name: String? var age: Int = 0 //1便利构造函数,允许返回nil //2本身不负责对象的创建 //3需要在调用 ...

  8. spring 大会的启示

    1.事件驱动的微服务编程 2.无服务架构的编程模型 3.微服务缓存

  9. <记录> PHP监控进程状态,完成掉线自动重启

    1. 利用Shell脚本实现 #!/bin/bash PORT= while [ true ];do read -p "please enter the port that you want ...

  10. django admin 设置(转载https://www.cnblogs.com/wumingxiaoyao/p/6928297.html)

    Django admin 一些有用的设置   Django自带的后台管理是Django明显特色之一,可以让我们快速便捷管理数据.后台管理可以在各个app的admin.py文件中进行控制.以下是我最近摸 ...