zoukankan      html  css  js  c++  java
  • Java-Selenium,获取下拉框中的每个选项的值,并随机选择某个选项

    今天逛51testing,看见有人问这个问题。现在以Select标签为例。

    1、首先看页面中的下拉框,如图:

    2、F12查看页面源代码,如下

    1 <select class="form-control" id="grade_id" name="grade_id" required="">
    2     <option value="">--无--</option>
    3     <option value="1">普通会员</option>
    4     <option value="5">VIP</option>
    5 </select>

    3、java代码调试下,获取下拉框中的每个选项的值

     1 //1、根据元素定位找到select这个标签
     2 Select level = new Select(driver.findElement(By.id("grade_id")));
     3 //2、getOptions()方法获得的是一个WebElement的集合
     4 List<WebElement> webElements = level.getOptions();
     5 
     6 //3、新建一个List,用来存储每个选项的文本值
     7 List<String> downs = new ArrayList<>();
     8 
     9 //4、for-each循环每个选项        
    10 for (WebElement webElement : webElements) {
    11     System.out.println("选项的值:"+webElement.getText()); //调试的时候打印看一下
    12         //5、将每个选项的文本值添加到List集合
    13     downs.add(webElement.getText()); 
    14 }

    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。
     1 Select level = new Select(driver.findElement(By.id("grade_id")));
     2 List<WebElement> webElements = level.getOptions();
     3 List<String> downs = new ArrayList<>();
     4         
     5 for (WebElement webElement : webElements) {
     6     downs.add(webElement.getText());
     7 }
     8 
     9 //1、获取下拉选项的数量        
    10 int num = webElements.size();
    11 //2、获得随机数
    12 int random = Utils.rangeInt(0, num-1);
    13 //3、根据随机数选择
    14 level.selectByIndex(random);

    备注:随机数是自己写的。需要的朋友可以自己网上找或者给我留言哦。其实如果不是select标签,而是<ul> <li></li>..... </ul>的html结构,思路是一样的。只是selenium没有单独封装这些方法而已。如果需要的话我也会写一写。

  • 相关阅读:
    第二章 怎样培养好习惯
    十六、使用jQuery操作元素 —— DOM属性与HTML元素属性
    第六章 培养感恩的习惯
    js 问题集锦 之 二
    HTML 5 学习笔记之 常用标签简介
    MySql 笔记一 之 时间和日期函数
    HTML 5 学习笔记之 canvas 标签
    MySql 笔记三 循环语句
    转载文:架构经验系列文章
    MySql 笔记二 基础命令
  • 原文地址:https://www.cnblogs.com/youreyebows/p/7743842.html
Copyright © 2011-2022 走看看