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'

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

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

相关推荐
用户8356290780511 小时前
使用 Python 自动化 PowerPoint 形状布局与格式设置
后端·python
用户8356290780513 小时前
用 Python 自动化 PowerPoint 演讲者备注添加
后端·python
Darling噜啦啦7 小时前
CSS 3D 变换与 Flex 布局实战:从零打造旋转立方体
前端·css
黄忠8 小时前
01-系统架构设计-LangGraph状态机与多源异构RAG
python
zzzzzz3108 小时前
假如我是掘金管理员,我先给评论区装个'代码审查'系统
python·程序员·机器人
用户059540174468 小时前
把待办应用从Electron换成Tauri,内存占用狂降90%,打包体积仅5MB
前端·css
砍材农夫9 小时前
python环境|conda安装和使用(2)
后端·python
程序员龙叔21 小时前
编写高质量 Skill 系列 -- 如何设计需求分析与用例生成的 SKILL
自动化测试·软件测试·python·软件测试工程师·接口测试·性能测试·skill·ai测试
用户8356290780511 天前
使用 Python 操作 Word 内容控件
后端·python