章节十一、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')]
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元素的更多相关文章
- 集合里面的 E是泛型 暂且认为是object
集合里面的 E是泛型 暂且认为是object
- 分析hello1项目里面的web.xml
在example目录下的web\jsf\hello1\target\hello1\WEB-INF路径里可以找到hello1的web.xml <?xml version="1.0&quo ...
- Js/如何操作div下面的span元素或者是img之类的标签元素
$("div[name='MatTypeName']").click(function (e) { $("div[name='MatTypeName']").e ...
- appium— Android定位webView里面的UI元素
Android SDK中的UIAutomator中本身是不支持网页中的UI元素定位,下面介绍几种常用的定位app内部的网页的UI元素的方法. 一.使用chrome浏览器调试移动端网页 这是使用最多的一 ...
- 解决背景图文字盖住html里面的dom元素
width:100%; background: url('../images/res.jpg') no-repeat 0 0px; background-attachment:fixed; backg ...
- Xpath选择、操作web元素
11月6日 xpath选择 XPath(XML Path Language)是W3C(World Wide Web Consortium)定义的用来在XML文档中选择节点的语言, 主浏览器也支持XPa ...
- jQuery 源码分析(二十一) DOM操作模块 删除元素 详解
本节说一下DOM操作模块里的删除元素模块,该模块用于删除DOM里的某个节点,也可以理解为将该节点从DOM树中卸载掉,如果该节点有绑定事件,我们可以选择保留或删除这些事件,删除元素的接口有如下三个: e ...
- Struts2 访问web元素
访问web元素的四种方法(耦合,依赖注入).(耦合,非依赖注入).(非耦合,依赖注入).(非耦合,非依赖注入) 耦合:可以得到HttpServletResponse,HttpServletReques ...
- lhgdialog: iframe页面里面的,确定,关闭、取消按钮的操作
lhgdialog: iframe页面里面的,确定,关闭.取消按钮的操作 如果你正在用lhgdialog,用他人iframe,或者 content:'url:http://www.baidu.com/ ...
随机推荐
- 记录C#泛型
常见的泛型类型 泛型类 class MyClass<T> { //...... } 泛型接口 interface GenericInterface<T> { void Gene ...
- python if语法
1.查看数据类型 print(type(1)) 2.同类型:数字相加 ,字符串拼接 a=input("输:") print(int(a)+5) 3.单if条件语句 if if 3& ...
- CPU 架构SMP/NUMA,调优
CPU 架构SMP/NUMA,调优 SMP:全称是"对称多处理"(Symmetrical Multi-Processing)技术 . 是指在一个计算机上汇集了一组处理器(多CPU) ...
- Vuex简介
一. 什么是Vuex? Vuex Vuex是一个专门为Vue.js应用程序开发的状态管理模式, 它采用集中式存储管理所有组件的公共状态, 并以相应的规则保证状态以一种可预测的方式发生变化. Vue ...
- jmeter从上一个请求使用正则表达式抓取Set-Cookie值,在下一个请求中运用
工作中遇到的问题,登录请求,返回的Response Headers中有个参数Set-Cookie,需要抓取这个参数,运用到下一个请求中,见下图: 通过正则表达式抓取Set-Cookie的值,由于该值存 ...
- 攻防世界web之ics-05
本文借鉴以下两篇文章的指导 https://www.jianshu.com/p/5a502873635b https://blog.csdn.net/about23/article/details/9 ...
- jQ的select事件和trigger方法的小冲突
方法和事件都不难理解,分开用也都没问题,但是一起用就有些小问题出现. 直接上结论:使用trigger方法触发一个文本类型的 input 元素的select事件时,chrome浏览器会错误的触发三次,f ...
- Django 连接数据库
配置数据库 Django 默认连接的是SQLite,如果想要连接MySQL则需修改配置:在 setting.py 中找到数据库的默认配置: DATABASES = { 'default': { 'EN ...
- Linux学习笔记-第18天 有点迷茫。。
有点迷茫学的这些知识的实用性..但愿今天可以用得到这些吧
- CF1204D Kirk and a Binary String
题目链接 problem 给出一个长度为\(n(n\le 10^5)\)的只包含01的字符串.把尽可能多的1变为0,使得对于所有的\(l \in [1,n],r\in [l,n]\),区间\([l,r ...