软件测试学习笔记丨Selenium学习笔记:css定位

本文转自测试人社区,原文链接:https://ceshiren.com/t/topic/22511

本文为霍格沃兹测试开发学社的学习经历分享,写出来分享给大家,希望有志同道合的小伙伴可以一起交流技术,一起进步~

说明:本篇博客基于selenium 4.1.0

selenium-css定位

复制代码
element_css = driver.find_element(By.CSS_SELECTOR, 'css表达式')

css定位说明

selenium中的css定位,实际是通过css选择器来定位到具体元素,css选择器来自于css语法

css定位优点

  1. 语法简洁
  2. 对比其他定位方式,定位效率更快
  3. 对比其他定位方式,定位更稳定

调试方法

方法1:在浏览器开发者模式的elements中,Ctrl+F搜索栏输入css表达式

方法2:在浏览器开发者模式的console中,按如下格式验证表达式

复制代码
$("css表达式")   # 注:表达式中存在引号,则使用单引号,'$'可更换为$$

css选择器语法

基础选择器

选择器 格式 示例 示例说明
选择全部 * * 选择全部元素
标签选择器 html标签 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属性),值表现为以空格隔开,使用时需要单个取出使用

组合选择器

组合选择器就是同时使用多个基础选择器,从而更好地筛选出目标元素

选择器 格式 示例 示例说明
标签指定属性 标签加属性描述 input#su 选择所有id='su'的元素
并集 元素1,元素2 div,p 选择所有 和 元素
父子 元素1>元素2 div>p 选择所有父级是 的 元素
后代 元素1 元素2 div p 选择 中的所有 元素
相邻 元素1+元素2 div+p 选择 同级后的相邻 元素
同级 元素1~元素2 div~p 选择 同级后的所有 元素

伪属性选择器

伪属性选择器是指元素在html中实际并不存在该属性,是由css定义的拓展描述属性

选择器 格式 示例 示例说明
唯一子元素 :only-child p:only-child 选择所有 元素且该元素是其父级的唯一一个元素
第一子元素 :first-child p:first-child 选择所有 元素且该元素是其父级的第一个元素
最后子元素 :last-child p:last-child 选择所有 元素且该元素是其父级的最后一个子元素
顺序选择器 :nth-child(n) p:nth-child(2) 选择所有 元素且该元素是其父级的第二个子元素
顺序类型选择器 :nth-of-type(n) p:nth-of-type(2) 选择所有 元素且该元素是其父级的第二个 元素
倒序选择器 :nth-last-child(n) p:nth-last-child(2) 选择所有 元素且该元素是其父级的倒数第二个子元素
倒序类型选择器 :nth-last-of-type(n) p:nth-last-of-type(2) 选择所有 元素且该元素是其父级的倒数第二个 元素

推荐学习

【霍格沃兹测试开发】7天软件测试快速入门带你从零基础/转行/小白/就业/测试用例设计实战

【霍格沃兹测试开发】最新版!Web 自动化测试从入门到精通/ 电子商务产品实战/Selenium (上集)

【霍格沃兹测试开发】最新版!Web 自动化测试从入门到精通/ 电子商务产品实战/Selenium (下集)

【霍格沃兹测试开发】明星讲师精心打造最新Python 教程软件测试开发从业者必学(上集)

【霍格沃兹测试开发】明星讲师精心打造最新Python 教程软件测试开发从业者必学(下集)

【霍格沃兹测试开发】精品课合集/ 自动化测试/ 性能测试/ 精准测试/ 测试左移/ 测试右移/ 人工智能测试

【霍格沃兹测试开发】腾讯/ 百度/ 阿里/ 字节测试专家技术沙龙分享合集/ 精准化测试/ 流量回放/Diff

【霍格沃兹测试开发】Pytest 用例结构/ 编写规范 / 免费分享

【霍格沃兹测试开发】JMeter 实时性能监控平台/ 数据分析展示系统Grafana/Docker 安装

【霍格沃兹测试开发】接口自动化测试的场景有哪些?为什么要做接口自动化测试?如何一键生成测试报告?

【霍格沃兹测试开发】面试技巧指导/ 测试开发能力评级/1V1 模拟面试实战/ 冲刺年薪百万!

【霍格沃兹测试开发】腾讯软件测试能力评级标准/ 要评级表格的联系我

【霍格沃兹测试开发】Pytest 与Allure2 一键生成测试报告/ 测试用例断言/ 数据驱动/ 参数化

【霍格沃兹测试开发】App 功能测试实战快速入门/adb 常用命令/adb 压力测试

【霍格沃兹测试开发】阿里/ 百度/ 腾讯/ 滴滴/ 字节/ 一线大厂面试真题讲解,卷完拿高薪Offer !

【霍格沃兹测试开发】App自动化测试零基础快速入门/Appium/自动化用例录制/参数配置

【霍格沃兹测试开发】如何用Postman 做接口测试,从入门到实战/ 接口抓包(最新最全教程)

相关推荐
知识分享小能手1 小时前
React学习教程,从入门到精通, React 属性(Props)语法知识点与案例详解(14)
前端·javascript·vue.js·学习·react.js·vue·react
汇能感知3 小时前
摄像头模块在运动相机中的特殊应用
经验分享·笔记·科技
阿巴Jun4 小时前
【数学】线性代数知识点总结
笔记·线性代数·矩阵
茯苓gao4 小时前
STM32G4 速度环开环,电流环闭环 IF模式建模
笔记·stm32·单片机·嵌入式硬件·学习
是誰萆微了承諾4 小时前
【golang学习笔记 gin 】1.2 redis 的使用
笔记·学习·golang
DKPT5 小时前
Java内存区域与内存溢出
java·开发语言·jvm·笔记·学习
aaaweiaaaaaa5 小时前
HTML和CSS学习
前端·css·学习·html
测试老哥5 小时前
6个步骤实现Postman接口压力测试
自动化测试·软件测试·测试工具·测试用例·接口测试·压力测试·postman
ST.J5 小时前
前端笔记2025
前端·javascript·css·vue.js·笔记