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’]。
-
下面是配套资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!
最后: 可以在公众号:自动化测试老司机! 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。
如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!