以下演示操作以图中页面为例(图中的页面是本地的网页,小伙伴们如果需要可以加入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”问我,群里都是软件行业的小伙伴相互一起学习。