zoukankan      html  css  js  c++  java
  • 章节十一、6-操作集合里面的Web元素

    以下演示操作以该网站为例: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”问我,群里都是软件行业的小伙伴相互一起学习、摸鱼、吹水。

  • 相关阅读:
    git 操作
    移动端Web开发注意事项(响应式)
    jQuery插件通用写法
    关于清除浮动(BFC),float和inline-block
    js和css的顺序关系及js加载执行优化探索
    表单验证
    日期比较
    常用正则表达式
    js事件线程机制和异步执行
    阻止事件冒泡
  • 原文地址:https://www.cnblogs.com/luohuasheng/p/10831627.html
Copyright © 2011-2022 走看看