Selenium定位元素的方法css和xpath的区别

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快

selenium是一种自动化测试工具,它可以通过不同的定位方式来识别网页上的元素,如id、name、class、tag、link text、partial link text、css和xpath。

css和xpath是两种常用的定位方式,它们都可以通过元素的属性或者层级关系来定位元素,但是它们也有一些区别:

css:

  • css是级联样式表,它用于给HTML网页的不同元素添加样式。
  • css定位器可以直接用元素的id、class或者标签来定位,如#id、.class或者tag。
  • css也可以通过其他属性来定位,如name='value'或者type='text'
  • css还可以通过层级关系来定位,如form#form>span>input表示选择form元素下id为form的子元素下span元素下的input元素。
  • css还可以通过索引来定位,如option:nth-child(1)表示选择第一个option子元素。
  • css还可以通过模糊匹配来定位,如input:contains('kw')表示选择包含kw的input元素。

xpath:

xpath是XML文档中查找节点的语法,它可以通过元素的路径来查找元素。

xpath定位器可以通过元素的任何属性来定位,如@id='value'或者@name='value'

xpath也可以通过标签和属性的组合来定位,如input@id='kw'表示选择input标签且id为kw的元素。

xpath还可以通过层级关系来定位,如//div@id='china'/p表示选择div元素下id为china的子元素下的所有p元素。

xpath还可以通过索引来定位,如option1表示选择第一个option子元素

xpath还可以通过模糊匹配来定位,如//*contains(@href,'miitbeian')表示选择包含miitbeian的href属性的所有元素。

css和xpath的主要区别在于:

  • xpath可以通过子元素搜索父元素,css无法实现,css只能从父级往下级搜索。例如,//div@id='china'/parent::表示选择id为china的div元素的父元素,css没有这样的语法。
  • xpath可以按文本搜索元素,css不能。例如,//*text()='hao123'表示选择文本为hao123的所有元素,css没有这样的语法。
  • css比xpath更简单易读,执行速度更快,语法上更简洁。例如,#kw表示选择id为kw的所有元素,而xpath需要写成//*@id='kw'

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

相关推荐
笔触狂放5 分钟前
第3章 抓取静态网页数据
爬虫·python
海兰5 分钟前
【 Python 量化交易】开篇
开发语言·python·信息可视化·量化交易
pt104317 分钟前
网络自动化Python课程:Netconf与Restconf及Cisco自动化配置实验
网络·python·自动化
风月说与山鬼21 分钟前
三、Tailwind CSS——排版与文字样式
前端·css·tailwind css
slacker-kian30 分钟前
[笔记]-什么是相似性搜索?
python·ai·向量·相似性搜索·点积·l2 距离·余弦相似度和距离
阿童木写作35 分钟前
跨境电商图片翻译工具,批量翻译视频字幕还免费
python·音视频
sukioe37 分钟前
城智连响:基于 LangGraph 与四库分层架构的城市公共设施智能报修与派单系统
人工智能·python·ai·架构·langchain
我的xiaodoujiao39 分钟前
Django 基础知识详细图文教程 4-Django 视图定义与使用
开发语言·数据库·后端·测试工具·django·sqlite
卷无止境1 小时前
Coding Agent 里的上下文 Compact,到底在压缩什么
后端·python
Patrick在香港1 小时前
Claude Prompt Caching 实测账单:第一轮贵 25%,从第二轮开始省 86%
python·prompt·claude·成本优化·prompt缓存·anthropic api