自动化测试—选择器

news2025/1/10 0:18:42

根据id选择名字:

<input  type="text" id='searchtext' />

element = wd.find_element(By.CSS_SELECTOR, '#searchtext')
element.send_keys('你好')


根据class选择元素的两种方式:

1.By.CLASS_NAME:

elements = wd.find_elements(By.CLASS_NAME, 'animal')

2.使用选择器:

elements = wd.find_elements(By.CSS_SELECTOR, '.animal')

子代选择器和后代选择器

子代选择器和后代选择器是 CSS 中用于选择元素的不同方式,它们有以下区别:

子代选择器(Child Selector):子代选择器使用 > 符号,用于选择父元素直接子元素。例如,.parent > .child 表示选择类名为 “parent” 的元素的直接子元素中的类名为 “child” 的元素。子代选择器只匹配直接子元素,不会匹配更深层次的后代元素。

后代选择器(Descendant Selector):后代选择器使用空格,用于选择祖先元素下的所有后代元素。例如,.parent .child 表示选择类名为 “parent” 的元素下所有类名为 “child” 的后代元素。后代选择器会匹配任意深度的后代元素,包括直接子元素、孙子元素、曾孙元素等等。

总结来说,子代选择器仅匹配父元素的直接子元素,而后代选择器则匹配父元素下的所有后代元素,无论其层级深度如何。因此,根据具体需求,我们可以选择使用子代选择器或后代选择器来精确地选择所需元素。


属性选择器

id、class 都是web元素的 属性 ,因为它们是很常用的属性,所以css选择器专门提供了根据 id、class 选择的语法。

那么其他的属性呢?

1.选择指定的herf属性

<a href="http://www.miitbeian.gov.cn">苏ICP备88885574</a>

# 根据属性选择元素
element = wd.find_element(By.CSS_SELECTOR, '[href="http://www.miitbeian.gov.cn"]')

这个表达式的意思是,选择 属性href值为 http://www.miitbeian.gov.cn 的元素。

2.选择全部为herf的值:

[href] 

3.指定标签的属性,并且指定标签中某个属性的值

div[class='SKnet'] 

4.属性中包含某一段值:

要选择a节点,里面的href属性包含了 miitbeian 字符串,就可以这样写

a[href*="miitbeian"]

5.还可以 选择 属性值 以某个字符串开头的元素

要选择a节点,里面的href属性以 http 开头 ,就可以这样写

a[href^="http"]

6.选择以什么结尾的元素

要选择a节点,里面的href属性以 gov.cn 结尾 ,就可以这样写

a[href$="gov.cn"]

7.同时选择多个元素的限制:

<div class="misc" ctype="gun">沙漠之鹰</div>

 div[class=misc][ctype=gun]

小结:
1指定的’[href=“http://www.miitbeian.gov.cn”]’
2.全部的’[href]’
3.指定标签指定属性div[class=‘SKnet’]
4.包含关系a[href*=“miitbeian”]
5.开头包含a[href^=“http”]
6.结尾包含a[href$=“gov.cn”]
7.多个限制 div[class=misc][ctype=gun]


组选择

如果我们要 同时选择所有class 为 plant 和 class 为 animal 的元素。

.plant , .animal

在这里插入图片描述
我们要选择所有 唐诗里面的作者和诗名, 也就是选择所有 id 为 t1 里面的 span 和 p 元素

错误写法

#t1 > span,p

正确写法:

#t1 > span , #t1 > p

注意:组选择结果列表中,选中元素排序, 不是 组表达式的次序, 而是符合这些表达式的元素,在HTML文档中的出现的次序。

父元素的第n个子节点

我们可以指定选择的元素 是父元素的第几个 某类型的 子节点

使用 nth-of-type

比如,

我们要选择 唐诗 和宋词 的第一个 作者,

可以像上面那样思考:选择的是 第2个子元素,并且是span类型

所以这样可以这样写 span:nth-child(2)

还可以这样思考,选择的是 第1个span类型 的子元素

所以也可以这样写 span:nth-of-type(1)

父元素的倒数第几个某类型的子节点

当然也可以反过来, 选择父元素的 倒数第几个某类型 的子节点

使用 nth-last-of-type

像这样

p:nth-last-of-type(2)

选择奇数和偶数节点:

如果要选择的是父元素的 偶数节点,使用 nth-child(even)

比如

p:nth-child(even)

如果要选择的是父元素的 奇数节点,使用 nth-child(odd)

p:nth-child(odd)

如果要选择的是父元素的 某类型偶数节点,使用 nth-of-type(even)

如果要选择的是父元素的 某类型奇数节点,使用 nth-of-type(odd)


相邻兄弟节点选择

上面的例子里面,我们要选择 唐诗 和宋词 的第一个 作者

还有一种思考方法,就是选择 h3 后面紧跟着的兄弟节点 span。

这就是一种 相邻兄弟 关系,可以这样写 h3 + span

表示元素 紧跟关系的 是 加号

后续所有兄弟节点选择

如果要选择是 选择 h3 后面所有的兄弟节点 span,可以这样写 h3 ~ span

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1030799.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C语言每日一题(7):获得月份天数

文章主题&#xff1a;获得月份天数&#x1f525;所属专栏&#xff1a;C语言每日一题&#x1f4d7;作者简介&#xff1a;每天不定时更新C语言的小白一枚&#xff0c;记录分享自己每天的所思所想&#x1f604;&#x1f3b6;个人主页&#xff1a;[₽]的个人主页&#x1f3c4;&…

MySQL数据库操作以及sql语句总结

一、MySQL数据库知识点补充 一个数据库就是一个完整的业务单元&#xff0c;可以包含多张表&#xff0c;数据被存储在表中在表中为了更加准确的存储数据&#xff0c;保证数据的正确有效&#xff0c;可以在创建表的时候&#xff0c;为表添加一些强制性的验证&#xff0c;包括数据…

day29IO流(其他流)

1. 缓冲流 昨天学习了基本的一些流&#xff0c;作为IO流的入门&#xff0c;今天我们要见识一些更强大的流。比如能够高效读写的缓冲流&#xff0c;能够转换编码的转换流&#xff0c;能够持久化存储对象的序列化流等等。这些功能更为强大的流&#xff0c;都是在基本的流对象基础…

【Proteus仿真】【STM32单片机】数字秒表设计

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 系统运行后&#xff0c;数码管默认不显示&#xff0c;当按下K1按下后&#xff0c;启动计时&#xff1b; 可按下K2键记录时间&#xff0c;可记录3次。也可再按下K1键停止&#xff0c;再次按下K1键继续运行…

【记录成长】大学时光已过半, 分享我的大二暑期实习经历

你好&#xff0c;我是cpt&#xff0c;本文章记录我大二暑期找实习的过程&#xff0c;以及工作中的点点滴滴&#xff0c;还有一些经验分享&#xff0c;希望能够帮助到你。 实习投递 (BOSS 1k沟通 10面) 投递 我是2023.6.16 才开始投递的 当时真的很晚了 基本很少hc 而且小公司…

Vuex —— 状态管理 | Module

在前面讲到了关于Vuex数据状态管理的内容&#xff0c;讲了Vuex的五大核心属性&#xff0c;在这五大核心属性中就 state、mutation 和 actions 在前面介绍 Vuex 状态管理和讲 Vuex 中的同步和异步操作已经比较熟悉了&#xff0c;getter 是基于state 的计算属性&#xff0c;vue 中…

用青龙面板实现阿里云盘每日签到

什么是青龙面板 ? 青龙面板 是支持 Python3、JavaScript、Shell、Typescript 的定时任务管理平台。 青龙面板从功能上看&#xff0c;和群晖的 计划任务 很像&#xff0c;都可以定时执行一个任务&#xff0c;并发送通知&#xff0c;只是青龙面板更强大一些。 安装 在群晖上以…

【校招VIP】测试计划之系统测试

考点介绍&#xff1a; 系统测试是将经过测试的子系统装配成一个完整系统来测试。它是检验系统是否确实能提供系统方案说明书中指定功能的有效方法。测试重点是整个系统的运行以及与其他软件的兼容性。 测试计划之系统测试-相关题目及解析内容可点击文章末尾链接查看&#xff…

静力水准仪的安装方式

监测系统的安装 概括 初次安装监测系统时&#xff0c;需结合现场施工情况遵循先后主次的顺序操作&#xff0c;合理的规划安装顺序可避免安装过程的失误造成的返工&#xff1b; 正常顺序为&#xff1a; 1.确定测量基准点的位置和监测点的位置并作出标记&#xff1b; 2.对基…

引入ojdbc6 11.2.0.3版本

IntelliJ IDEA使用Maven导入一些依赖包&#xff0c;在pom.xml中引入ojdbc6 11.2.0.3版本一直失败&#xff0c;下载不了.jar文件 <dependency><groupId>com.oracle</groupId><artifactId>ojdbc6</artifactId><version>11.2.0.3</version…

【Linux】分布式版本控制工具git

​ ​&#x1f4dd;个人主页&#xff1a;Sherry的成长之路 &#x1f3e0;学习社区&#xff1a;Sherry的成长之路&#xff08;个人社区&#xff09; &#x1f4d6;专栏链接&#xff1a;Linux &#x1f3af;长路漫漫浩浩&#xff0c;万事皆有期待 上一篇博客&#xff1a;【Linux】…

Autosar模块介绍:Memory_1(模块概述)

上一篇 | 返回主目录 | 下一篇 Autosar模块介绍&#xff1a;Memory_1(模块概述 1 参考文献2 术语及缩写3 模块在架构中位置及作用 1 参考文献 [1] AUTOSAR_SWS_NVRAMManager.pdf [2] AUTOSAR_SRS_MemoryServices.pdf [3] AUTOSAR_SRS_MemoryHWAbstractionLayer.pdf [4] AUTOS…

dbeaver连sqlserver默认数据库

url:jdbc:sqlserver://localhost:1433

Pytorch-CNN-CIFAR10

文章目录 model.pymain.py运行图 model.py import torch.nn as nn import torch.nn.functional as F import torch.nn.init as init class CNN_cls(nn.Module):def __init__(self,in_dim):super(CNN_cls,self).__init__()self.conv1 nn.Conv2d(in_dim,32,1,1)self.pool1 nn.…

云原生微服务治理 第五章 Spring Cloud Netflix 之 Ribbon

系列文章目录 第一章 Java线程池技术应用 第二章 CountDownLatch和Semaphone的应用 第三章 Spring Cloud 简介 第四章 Spring Cloud Netflix 之 Eureka 第四章 Spring Cloud Netflix 之 Ribbon 文章目录 系列文章目录[TOC](文章目录) 前言1、负载均衡1.1、服务端负载均衡1.2、…

JavaScript系列从入门到精通系列第五篇:JavaScript中的强制类型转换包含强制类型转换之Number,包含强制类型转换之String

文章目录 前言 一&#xff1a;强制类型转换 1&#xff1a;强制类型转换为String (一)&#xff1a;方式一&#xff1a;调用被转换类型的toString()方法 (二)&#xff1a;方式二&#xff1a;调用String函数 2&#xff1a;强制类型转换为Number (一)&#xff1a;方式一&…

【Proteus仿真】【STM32单片机】大棚远程监测控制

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 系统运行后&#xff0c;LCD1604显示传感器检测的环境温湿度、土壤湿度、光照强度、CO2浓度和阈值&#xff1b;可通过上位机远程观察传感器采集的数据显示&#xff1b;可通过K3键进入阈值设置模式&#xf…

如何使用大型语言模型LLMs作为历史课程的教学工具?#提示工程技巧

Mixlab从2018就开始分享过一些关于教育的内容&#xff1a; GPT-4等对教育的未来意味着什么&#xff1f;2023-05-05 学习的目的是什么&#xff1f;我喜欢的教育产品应该是这样的 2019-07-08 你是 Infinite Learner 吗&#xff1f;2018-05-27 今天继续教育的话题&#xff0c;我们…

基于微信小程序的超市售货管理平台设计与实现(源码+lw+部署文档+讲解等)

前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌&#x1f497; &#x1f447;&#x1f3fb;…

通过内网穿透,在Windows 10系统下搭建个人《我的世界》服务器公网联机

文章目录 1. Java环境搭建2.安装我的世界Minecraft服务3. 启动我的世界服务4.局域网测试连接我的世界服务器5. 安装cpolar内网穿透6. 创建隧道映射内网端口7. 测试公网远程联机8. 配置固定TCP端口地址8.1 保留一个固定tcp地址8.2 配置固定tcp地址 9. 使用固定公网地址远程联机 …