以下演示操作以该网站为例:https://learn.letskodeit.com/p/practice

一、如何操作多个元素(把多个元素放到集合容器中然后操作它们)

列如我们需要操作这些单选框::

首先我们需要找到这3个元素通用的属性,然后根据这些属性写出xpath,才能够把它们放到集合中进行操作

我们的xpath可以写成://input[@type='radio']

但如果页面中有多个radio标签,那么该xpath就不能准确定位,为了确保精准定位我们可以将xpath写成://input[contains(@type,'radio') and contains(@name,'cars')]

 1 package basicweb;
 2 
 3 
 4 import java.util.List;
 5 import java.util.concurrent.TimeUnit;
 6 
 7 import org.junit.jupiter.api.AfterEach;
 8 import org.junit.jupiter.api.BeforeEach;
 9 import org.junit.jupiter.api.Test;
10 import org.openqa.selenium.By;
11 import org.openqa.selenium.WebDriver;
12 import org.openqa.selenium.WebElement;
13 import org.openqa.selenium.chrome.ChromeDriver;
14 
15 class ElementList {
16     WebDriver driver;
17     String url;    
18     
19     @BeforeEach
20     void setUp() throws Exception {
21         driver = new ChromeDriver();
22         url = "https://learn.letskodeit.com/p/practice";
23         driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
24         driver.manage().window().maximize();
25         driver.get(url);
26     }
27 
28     @Test
29     void test() throws Exception {
30 //    1、查找出我们需要操作的单选
31 //        新建一个集合引用,表示该集合中装的都是WebElement类型的对象
32         List<WebElement> radioButtons = driver.findElements(By.xpath("//input[contains(@type,'radio') and contains(@name,'cars')]"));
33         
34 //    2、操作查找到的元素
35 //        获取集合的大小
36         int size = radioButtons.size();
37         boolean isCheck = false;
38 //        打印集合大大小
39         System.out.println("集合的大小是:"+size);
40 //        使用for对元素进行循环操作
41         for(int i = 0 ; i < size ; i++) {
42 //            通过get方法获取单选框的角标,然后判断单选框是否被选中
43             isCheck = radioButtons.get(i).isSelected();
44 //            如果没有选中
45             if(!isCheck) {
46 //                就点击
47             radioButtons.get(i).click();
48             Thread.sleep(2000);
49             }
50         }
51     }
52     
53     @AfterEach
54     void tearDown() throws Exception {
55         Thread.sleep(2000);
56         driver.quit();
57     }
58 }

注意:

1、使用查找元素的方法时,我们需要用“.findElements”这个方法

2、需要导入“java.util.List”这个包

 

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

posted on 2019-05-09 15:42  时光以北暮南城  阅读(311)  评论(0编辑  收藏  举报