以下演示操作以图中页面为例(图中的页面是本地的网页,小伙伴们如果需要可以加入555191854或者找其他有多选列表的网站进行练习):

多选列表框可以选择后可以按Ctrl然后选择多项或者取消已经选择的选项,上一节中讲到下拉列表框是不可以进行此操作的。

 

一、多选列表框的标签中会带有“multiple”属性

 

二、实例演示

 1 package basicweb;
 2 
 3 import static org.junit.jupiter.api.Assertions.*;
 4 
 5 import java.util.List;
 6 import java.util.concurrent.TimeUnit;
 7 
 8 import org.junit.jupiter.api.AfterEach;
 9 import org.junit.jupiter.api.BeforeEach;
10 import org.junit.jupiter.api.Test;
11 import org.openqa.selenium.By;
12 import org.openqa.selenium.WebDriver;
13 import org.openqa.selenium.WebElement;
14 import org.openqa.selenium.chrome.ChromeDriver;
15 import org.openqa.selenium.support.ui.Select;
16 
17 class MultipleSelect {
18 
19     WebDriver driver;
20     String url;
21     
22     @BeforeEach
23     void setUp() throws Exception {
24         driver = new ChromeDriver();
25         url = "C:\\Users\\acer\\eclipse-workspace\\SeleniumPractise\\PracticePage.html";
26         driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
27         driver.manage().window().maximize();
28         driver.get(url);
29     }
30     
31     @Test
32     void test() throws Exception {
33 //        定位多选列表框
34         WebElement element = driver.findElement(By.id("multiple-select-example"));
35 //        创建对象
36         Select select = new Select(element);
37         
38         Thread.sleep(2000);
39         System.out.println("选择第二个多选列表框元素(桔子)");
40 //        通过标签的value值来选择
41         select.selectByValue("orange");
42         
43         Thread.sleep(2000);
44         System.out.println("取消选择已经选择的多选列表框元素(桔子)");
45 //        取消选择的值
46         select.deselectByValue("orange");
47 
48         Thread.sleep(2000);
49         System.out.println("选择第一个多选列表框元素(苹果)");
50 //        通过下标索引直接选择
51         select.selectByIndex(0);
52 
53         Thread.sleep(2000);
54         System.out.println("选择第三个多选列表框元素(桃子)");
55 //        通过下拉选项的文本值来选择
56         select.selectByVisibleText("桃子");
57         
58         Thread.sleep(2000);
59         System.out.println("通过集合打印选择状态的多选列表框元素:");
60 //        打印被选中的选项
61 //        getAllSelectedOptions返回的是一个list集合,这个方法可以获取到最后被选择的选项然后放到集合中
62         List<WebElement> ele = select.getAllSelectedOptions();
63         for(WebElement elem:ele) {
64 //            打印选项的文本
65             System.out.println(elem.getText());
66         }
67         
68         Thread.sleep(2000);
69         System.out.println("取消所有被选择的多选列表框元素:");
70 //        取消所有被选择的选项
71         select.deselectAll();
72     }
73 
74     @AfterEach
75     void tearDown() throws Exception {
76         Thread.sleep(2000);
77         driver.quit();
78     }
79 }

运行结果:

 

如果有不明白的小伙伴可以加群“555191854”问我,群里都是软件行业的小伙伴相互一起学习。

posted on 2019-05-10 10:55  时光以北暮南城  阅读(331)  评论(0编辑  收藏  举报