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

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

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

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

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

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

 package basicweb;

 import java.util.List;
import java.util.concurrent.TimeUnit; import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver; class ElementList {
WebDriver driver;
String url; @BeforeEach
void setUp() throws Exception {
driver = new ChromeDriver();
url = "https://learn.letskodeit.com/p/practice";
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.manage().window().maximize();
driver.get(url);
} @Test
void test() throws Exception {
// 1、查找出我们需要操作的单选
// 新建一个集合引用,表示该集合中装的都是WebElement类型的对象
List<WebElement> radioButtons = driver.findElements(By.xpath("//input[contains(@type,'radio') and contains(@name,'cars')]")); // 2、操作查找到的元素
// 获取集合的大小
int size = radioButtons.size();
boolean isCheck = false;
// 打印集合大大小
System.out.println("集合的大小是:"+size);
// 使用for对元素进行循环操作
for(int i = 0 ; i < size ; i++) {
// 通过get方法获取单选框的角标,然后判断单选框是否被选中
isCheck = radioButtons.get(i).isSelected();
// 如果没有选中
if(!isCheck) {
// 就点击
radioButtons.get(i).click();
Thread.sleep(2000);
}
}
} @AfterEach
void tearDown() throws Exception {
Thread.sleep(2000);
driver.quit();
}
}

注意:

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

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

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

章节十一、6-操作集合里面的Web元素的更多相关文章

  1. 集合里面的 E是泛型 暂且认为是object

    集合里面的 E是泛型 暂且认为是object

  2. 分析hello1项目里面的web.xml

    在example目录下的web\jsf\hello1\target\hello1\WEB-INF路径里可以找到hello1的web.xml <?xml version="1.0&quo ...

  3. Js/如何操作div下面的span元素或者是img之类的标签元素

    $("div[name='MatTypeName']").click(function (e) { $("div[name='MatTypeName']").e ...

  4. appium— Android定位webView里面的UI元素

    Android SDK中的UIAutomator中本身是不支持网页中的UI元素定位,下面介绍几种常用的定位app内部的网页的UI元素的方法. 一.使用chrome浏览器调试移动端网页 这是使用最多的一 ...

  5. 解决背景图文字盖住html里面的dom元素

    width:100%; background: url('../images/res.jpg') no-repeat 0 0px; background-attachment:fixed; backg ...

  6. Xpath选择、操作web元素

    11月6日 xpath选择 XPath(XML Path Language)是W3C(World Wide Web Consortium)定义的用来在XML文档中选择节点的语言, 主浏览器也支持XPa ...

  7. jQuery 源码分析(二十一) DOM操作模块 删除元素 详解

    本节说一下DOM操作模块里的删除元素模块,该模块用于删除DOM里的某个节点,也可以理解为将该节点从DOM树中卸载掉,如果该节点有绑定事件,我们可以选择保留或删除这些事件,删除元素的接口有如下三个: e ...

  8. Struts2 访问web元素

    访问web元素的四种方法(耦合,依赖注入).(耦合,非依赖注入).(非耦合,依赖注入).(非耦合,非依赖注入) 耦合:可以得到HttpServletResponse,HttpServletReques ...

  9. lhgdialog: iframe页面里面的,确定,关闭、取消按钮的操作

    lhgdialog: iframe页面里面的,确定,关闭.取消按钮的操作 如果你正在用lhgdialog,用他人iframe,或者 content:'url:http://www.baidu.com/ ...

随机推荐

  1. PHP统计二维数组个数

    count($arr) $arr = [ ['id'=>1,'name'=>'Tom'], ['id'=>2,'name'=>'Sun'], ['id'=>3,'name ...

  2. python语法区别

    python语法区别: 大小写敏感 (动态语言:python)变量不用声明 p.s: 静态语言(Java)必须声明变量 语句末尾可以不打分号 可以直接进行数学计算 复制.粘贴功能失效,粘贴到别的地方的 ...

  3. (四)Amazon Lightsail 部署LAMP应用程序之扩展PHP前端

    扩展PHP前端 既然PHP前端和数据库是分开的,您将为Web层添加可伸缩性和容错性: 在以下步骤,您将获取Web前端实例的快照,并从该快照部署另外2个Web层实例.最终,您将在三个Web实例前面添加一 ...

  4. golang数据结构和算法之BinarySearch二分查找法

    基础语法差不多了, 就需要系统的撸一下数据结构和算法了. 没找到合适的书, 就参考github项目: https://github.com/floyernick/Data-Structures-and ...

  5. 【bzoj4154】(dfs序+kd-tree)

    传送门 题意: 给出一颗以\(1\)为根的有根树,初始所有结点的颜色为\(1\). 之后有两个操作,一种是每次将距离\(a\)结点距离不超过\(l\)的所有儿子结点颜色染为\(c\):另一种是询问结点 ...

  6. 数据库(update tab1 set tab1.name=tab1.name+(select t2.name from tab2 t2 where t2.id=tab1.id))

    有t1 和 t2 两个表,表中的数据和字段如下: 执行 如下SQL语句: update tab1 set tab1.name=tab1.name+(select t2.name from tab2 t ...

  7. luoguP2178 [NOI2015]品酒大会(后缀自动机)

    题意 承接上篇题解 考虑两个后缀的\(lcp\)是什么,是将串反着插入后缀自动机后两个前缀(终止节点)的\(lca\)!!!于是可以在parent tree上DP了. 比后缀数组又简单又好写跑的还快. ...

  8. git相关2

    初学备忘: git安装好后,目录右键 => Git Bash here _________________________ 初始化仓库 git init 仓库名 配置仓库 git config ...

  9. Nginx Rewrite域名及资源重定向

    一.正则匹配     1.匹配规则         ^$  标识符匹配后面跟-一个字符串.匹配字符串后将停止对后续的正则表达式进行匹配,如location ^~/images/,在匹配了/images ...

  10. 【2019.8.9 慈溪模拟赛 T2】摘Galo(b)(树上背包)

    树上背包 这应该是一道树上背包裸题吧. 众所周知,树上背包的朴素\(DP\)是\(O(nm^2)\)的. 但对于这种体积全为\(1\)的树上背包,我们可以通过记\(Size\)优化转移时的循环上界,做 ...