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沒有單獨封裝這些方法而已。如果需要的話我也會寫一寫。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM