selenium教程 —— css定位


说明:本篇博客基于selenium 4.1.0
selenium-css定位
element_css = driver.find_element(By.CSS_SELECTOR, 'css表达式')
复制代码
css定位说明
selenium中的css定位,实际是通过css选择器来定位到具体元素,css选择器来自于css语法
css定位优点
- 语法简洁
- 对比其他定位方式,定位效率更快
- 对比其他定位方式,定位更稳定
调试方法
方法1:在浏览器开发者模式的elements中,Ctrl+F搜索栏输入css表达式 方法2:在浏览器开发者模式的console中,按如下格式验证表达式
$("css表达式") # 注:表达式中存在引号,则使用单引号,'$'可更换为$$
复制代码
css选择器语法
基础选择器
| 选择器 | 格式 | 示例 | 示例说明 |
|---|---|---|---|
| 选择全部 | * | * | 选择全部元素 |
| 标签选择器 | html标签 | p | 选择所有<p>元素 |
| ID选择器 | #id属性值 | #su | 选择所有id='su'的元素 |
| 类选择器 | .class属性值 | .s_btn | 选择所有class='s_btn'的元素 |
| 属性选择器1 | [属性名] | [type] | 选择所有带type属性的元素 |
| 属性选择器2 | [属性名='属性值'] | [type="submit"] | 选择所有type="submit"的元素 |
| 属性选择器3 | [属性名~='属性值'] | [type~="submit"] | 选择所有type包含"submit"的元素 |
| 属性选择器4 | [属性名|='属性值'] | [type|="submit"] | 选择所有type以"submit"开头的元素 |
备注:某些元素属性有多个值(如class属性),值表现为以空格隔开,使用时需要单个取出使用
现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:110685036

组合选择器
组合选择器就是同时使用多个基础选择器,从而更好地筛选出目标元素
| 选择器 | 格式 | 示例 | 示例说明 |
|---|---|---|---|
| 标签指定属性 | 标签加属性描述 | input#su | 选择所有id='su'的<input>元素 |
| 并集 | 元素1,元素2 | div,p | 选择所有<div>和<p>元素 |
| 父子 | 元素1>元素2 | div>p | 选择所有父级是<div>的<p>元素 |
| 后代 | 元素1 元素2 | div p | 选择<div>中的所有<p>元素 |
| 相邻 | 元素1+元素2 | div+p | 选择<div>同级后的相邻<p>元素 |
| 同级 | 元素1~元素2 | div~p | 选择<div>同级后的所有<p>元素 |
伪属性选择器
伪属性选择器是指元素在html中实际并不存在该属性,是由css定义的拓展描述属性
| 选择器 | 格式 | 示例 | 示例说明 |
|---|---|---|---|
| 唯一子元素 | :only-child | p:only-child | 选择所有<p>元素且该元素是其父级的唯一一个元素 |
| 第一子元素 | :first-child | p:first-child | 选择所有<p>元素且该元素是其父级的第一个元素 |
| 最后子元素 | :last-child | p:last-child | 选择所有<p>元素且该元素是其父级的最后一个子元素 |
| 顺序选择器 | :nth-child(n) | p:nth-child(2) | 选择所有<p>元素且该元素是其父级的第二个子元素 |
| 顺序类型选择器 | :nth-of-type(n) | p:nth-of-type(2) | 选择所有<p>元素且该元素是其父级的第二个<p>元素 |
| 倒序选择器 | :nth-last-child(n) | p:nth-last-child(2) | 选择所有<p>元素且该元素是其父级的倒数第二个子元素 |
| 倒序类型选择器 | :nth-last-of-type(n) | p:nth-last-of-type(2) | 选择所有<p>元素且该元素是其父级的倒数第二个<p>元素 |
今天的分享就到此结束了, 如果文章对你有帮助,记得点赞,收藏,加关注。会不定期分享一些干货哦......
相关文章:
selenium教程 —— css定位
说明:本篇博客基于selenium 4.1.0 selenium-css定位 element_css driver.find_element(By.CSS_SELECTOR, css表达式) 复制代码 css定位说明 selenium中的css定位,实际是通过css选择器来定位到具体元素,css选择器来自于css语法 css定位优点…...
Leetcode 1834. Single-Threaded CPU (堆好题)
Single-Threaded CPU Medium You are given n tasks labeled from 0 to n - 1 represented by a 2D integer array tasks, where tasks[i] [enqueueTimei, processingTimei] means that the ith task will be available to process at enque…...
21-数据结构-内部排序-交换排序
简介:主要根据两个数据进行比较从而交换彼此位置,以此类推,交换完全部。主要有冒泡和快速排序两种。 目录 一、冒泡排序 1.1简介: 1.2代码: 二、快速排序 1.1简介: 1.2代码: 一、冒泡排序…...
5-k8s-探针介绍
文章目录 一、探针介绍二、探针类型三、探针定义方式四、探针实例五、启动探针测试六、存活探针测试七、就绪探针测试 一、探针介绍 概念 在 Kubernetes 中 Pod 是最小的计算单元,而一个 Pod 又由多个容器组成,相当于每个容器就是一个应用,应…...
【网络安全 --- MySQL数据库】网络安全MySQL数据库应该掌握的知识,还不收藏开始学习。
四,MySQL 4.1 mysql安装 #centos7默认安装的是MariaDB-5.5.68或者65, #查看版本的指令:[rootweb01 bbs]# rpm -qa| grep mariadb #安装mariadb的最新版,只是更新了软件版本,不会删除之前原有的数据。 #修改yum源的配…...
【MyBatis系列】- 什么是MyBatis
【MyBatis系列】- 什么是MyBatis 文章目录 【MyBatis系列】- 什么是MyBatis一、学习MyBatis知识必备1.1 学习环境准备1.2 学习前掌握知识二、什么是MyBatis三、持久层是什么3.1 为什么需要持久化服务3.2 持久层四、Mybatis的作用五、MyBatis的优点六、参考文档一、学习MyBatis知…...
【Linux】Ubuntu美化bash【教程】
【Linux】Ubuntu美化bash【教程】 文章目录 【Linux】Ubuntu美化bash【教程】1. 查看当前环境中是否有bash2. 安装Synth-Shell3. 配置Synth-Shell4. 取消greeterReference 1. 查看当前环境中是否有bash 查看当前使用的bash echo $SHELL如下所示 sjhsjhR9000X:~$ echo $SHELL…...
微信小程序仿苹果负一屏由弱到强的高斯模糊
进入下面小程序可以体验效果,然后进入更多。查看模糊效果 一、创建小程序组件 二、代码 wxml: <view class"topBar-15"></view> <view class"topBar-14"></view> <view class"topBar-13"></view&…...
js中的new方法
new方法的作用:创建一个实例对象,并继承原对象的属性和方法; new对象内部操作: 1,创建一个新对象,将新对象的proto属性指向原对象的prototype属性; 2,构造函数执行环境中的this指向…...
机器学习-无监督算法之降维
降维:将训练数据中的样本从高维空间转换到低维空间,降维是对原始数据线性变换实现的。为什么要降维?高维计算难,泛化能力差,防止维数灾难优点:减少冗余特征,方便数据可视化,减少内存…...
ubuntu20.04下Kafka安装部署及基础使用
Ubuntu安装kafka基础使用 kafka 安装环境基础安装下载kafka解压文件修改配置文件启动kafka创建主题查看主题发送消息接收消息 工具测试kafka Assistant 工具连接测试基础连接连接成功查看topic查看消息查看分区查看消费组 Idea 工具测试基础信息配置信息当前消费组发送消息消费…...
汉得欧洲x甄知科技 | 携手共拓全球化布局,助力出海中企数智化发展
HAND Europe 荣幸获得华为云颁发的 GrowCloud 合作伙伴奖项,进一步巩固了其在企业数字化领域的重要地位。于 2023 年 10 月 5 日,HAND Europe 参加了华为云荷比卢峰会,并因其在全球拓展方面的杰出贡献而荣获 GrowCloud 合作伙伴奖项的认可。 …...
【Javascript保姆级教程】显示类型转换和隐式类型转换
文章目录 前言一、显式类型转换1.1 字符串转换1.2 数字转换1.3 布尔值转换 二、隐式类型转换2.1 数字与字符串相加2.2 布尔值与数字相乘 总结 前言 JavaScript是一种灵活的动态类型语言,这意味着变量的数据类型可以在运行时自动转换,或者通过显式类型转…...
C++算法前缀和的应用:分割数组的最大值的原理、源码及测试用例
分割数组的最大值 相关知识点 C算法:前缀和、前缀乘积、前缀异或的原理、源码及测试用例:付视频课程 二分 过些天整理基础知识 题目 给定一个非负整数数组 nums 和一个整数 m ,你需要将这个数组分成 m 个非空的连续子数组。 设计一个算法…...
gitlab自编译 源码下载
网上都是怎么用 gitlab,但是实际开发中有需要针对 gitlab 进行二次编译自定义实现功能的想法。 搜索了网上的资料以及在官网的查找,查到了如下 gitlab 使用 ruby 开发。 gitlab 下载包 gitlab/gitlab-ce - Packages packages.gitlab.com gitlab/gitl…...
SBD(Schottky Barrier Diode)与JBS(Junction Barrier Schottky)
SBD和JBS二极管都是功率二极管,具有单向导电性,在电路中主要用于整流、箝位、续流等应用。两者的主要区别在于结构和性能。 结构 SBD是肖特基二极管的简称,其结构由一个金属和一个半导体形成的金属-半导体结构成。 JBS是结势垒肖特基二极…...
HANA:计算视图-图形化Aggregation组件-踩坑小记(注意事项)
今天遇到在做HANA视图开发的时候,遇到一个事,一直以为是个BUG,可把我气坏了,具体逻辑是这样的,是勇图形化处理的,ACDOCA innerjoin 一个时间维度表,就这么简单,完全按照ACDOCA的主键…...
【milkv】更新rndis驱动
问题 由于windows升级到了11,导致rndis驱动无法识别到。 解决 打开设备管理器,查看网络适配器,没有更新会显示黄色的图标。 右击选择更新驱动...
基于混沌博弈优化的BP神经网络(分类应用) - 附代码
基于混沌博弈优化的BP神经网络(分类应用) - 附代码 文章目录 基于混沌博弈优化的BP神经网络(分类应用) - 附代码1.鸢尾花iris数据介绍2.数据集整理3.混沌博弈优化BP神经网络3.1 BP神经网络参数设置3.2 混沌博弈算法应用 4.测试结果…...
基于人工水母优化的BP神经网络(分类应用) - 附代码
基于人工水母优化的BP神经网络(分类应用) - 附代码 文章目录 基于人工水母优化的BP神经网络(分类应用) - 附代码1.鸢尾花iris数据介绍2.数据集整理3.人工水母优化BP神经网络3.1 BP神经网络参数设置3.2 人工水母算法应用 4.测试结果…...
查询直线的条数
#include <iostream> #include <vector> #include <set> #include <numeric> // For std::gcdusing namespace std;// 定义点结构 struct Point {int x, y; };// 定义直线结构,通过最简斜率和直线上的一点来唯一标识 // 实际上更好的办法是…...
Pixel Language Portal惊艳效果集:梵文古籍→现代汉语的逐层语义解构与重构展示
Pixel Language Portal惊艳效果集:梵文古籍→现代汉语的逐层语义解构与重构展示 1. 像素语言传送门核心能力 Pixel Language Portal(像素语言跨维传送门)是基于Tencent Hunyuan-MT-7B引擎构建的创新翻译工具。与传统翻译软件不同࿰…...
保温vs隔热
保温vs隔热 什么是保温,什么是隔热?保的什么温,隔的什么热? 1 保温vs隔热 保温vs隔热是门窗幕墙行业耳熟能详的两个词:比如门窗保温性能,隔热铝合金窗等等。那么什么是保温,什么是隔热呢? GB/T 8478-2020《铝合金门窗》中给出了门窗保温性能和隔热性能的定义。 门…...
基于Simulink的Smith预估器PID整定与延迟系统控制实验
1. 从零开始理解Smith预估控制 第一次接触Smith预估器时,我也被这个"时间旅行"般的概念惊艳到了。想象一下,你正在用热水器洗澡,每次调节水温都要等10秒才能感受到变化——这就是典型的纯延迟系统。Smith预估器的精妙之处在于&…...
SEO_网站SEO优化完整教程:从入门到精通
SEO优化入门:从零基础到实战操作 随着互联网的迅猛发展,网站SEO优化成为了网站推广的重要手段。SEO,即搜索引擎优化,是通过优化网站的各项因素,使其在搜索引擎中获得更好的排名,从而吸引更多的流量。如何从…...
基于 ThinkLink 的 CJ188 冷水表无线接入方案
让传统冷水表快速接入 LoRaWAN 与物联网平台在很多住宅小区、园区楼宇、老旧水务改造项目中,现场已经部署了大量传统冷水表。 这些水表本身具备稳定计量能力,但往往存在一个共同问题:数据采集依赖人工,抄表效率低,管理…...
职业院校智慧校园系统采购,为什么要把校企合作项目放在前面?
✅作者简介:合肥自友科技 📌核心产品:智慧校园平台(包括教工管理、学工管理、教务管理、考务管理、后勤管理、德育管理、资产管理、公寓管理、实习管理、就业管理、离校管理、科研平台、档案管理、学生平台等26个子平台) 。公司所有人员均有多…...
c++如何利用C++23的std--expected重构文件操作的错误管理代码【实战】
std::expected<T, E> 是 C23 提供的零成本错误处理机制,强制调用方显式处理成功与失败分支,适用于预期会失败且需响应的场景(如文件操作、网络请求),优于 errno 返回值、std::optional 或异常滥用。std::expect…...
H5网页实现摄像头实时检测与拍照功能
1. 为什么需要网页摄像头功能? 现在越来越多的应用场景需要在网页中直接调用摄像头,比如在线考试的人脸识别验证、远程医疗问诊时的病情拍摄、视频会议中的实时画面传输等。传统做法需要用户安装专门的客户端软件,而H5技术可以直接在浏览器中…...
台达 PLC ES 与 3 台欧姆龙 E5CC 温控器通讯程序分享
台达PLC ES与3台欧姆龙E5CC温控器通讯程序 程序带注释,并附送昆仑通态和威纶通触摸屏有接线方式,设置 程序温度可靠 器件:台达DVP ES系列的PLC,3台欧姆龙E5CC系列温控器,昆仑通态,威纶通触摸屏 功能&#x…...
